nodejs系列
Nodejs介紹
- Node.js是一個Javascript運行環境(runtime)。它讓JavaScript可以開發后端程序,它幾乎能實現其他后端語言能實現的所有功能。單線程
- Node是基于Google V8引擎,V8引擎是Google發布的一款開源的JavaScript引擎。
- Nodejs最擅長高并發
進程和線程
進程
- 進程負責為程序的運行提供必備的環境、
- 進程就相當于工廠的車間
線程
- 線程計算機中的最小的計算單位,線程負責執行進程中的程序
- 線程就相當于工廠中的工人
NPM介紹
npm是世界上最大的開放源代碼的生態系統,npm是隨同NodeJS一起安裝的包管理工具
npm命令
- npm init --yes 生成package.json文件
- npm install md5 --save(cnpm加上save可以讓配置dependencies中添加md5的配置信息,npm則可以省略,會默認加上)
- npm install 包 -save-dev 添加到devDependencies配置中
- npm uninstall md5 卸載模塊
- npm i 根據package.json文件配置生成node_modules
- npm list 查看當前目錄下已安裝的node包
- npm info 模塊 查看模塊的版本
- npm install 模塊@1.8.0 指定版本安裝
模塊化 CommonJs
CommonJs就是模塊化的標準,node就是CommonJs(模塊化)的實現
- 通過exports或者module.exports暴露屬性或者方法
- 通過require的方式引入模塊
方式一:exports導出
語法:
exports導出
exports.xxxx=xxxx
cosnt a = require('地址')
打印a {xxxx:{}}
方式二:module.exports (只有一個對象推薦使用)
module.exports=obj
cosnt a = require('地址')
打印a {}
通過require引入的時候會發生兩種情況
- 在被引入的文件node_modules文件夾下,引入是地址可以省略node_modules
例: node_modules
axios
index.js
db
db.js
這樣的目錄結構 - require('./axios') 當文件是index可以省略
- require('db.db')
這種情況可以直接在db文件夾下npm init --yes 生成一個package.json文件
之后就可以這樣引入require('db')
執行機制是package.json文件中的main
三個核心模塊
http src Fs
http的使用
//request 獲取url穿過來的信息 //response 給瀏覽器的響應信息 const http = require('http'); http.createserver((request,response)=>{const method = req.method; //獲取請求方式 "GET"/"POST"...const url = req.url;//獲取請求的地址const path = req.url.split('?')[0];const query = qs.parse(req.url.split('?')[1]);response.writeHead(200,{'Content-Type':'text/html;charset="utf-8"'})response.write(<head><meta charset="utf-8"/></head>)response.end() }).listen(3001)src
待補充……
Fs
引入:const fs = require(‘fs’);
方法
- fs.stat 檢測時文件還是目錄
- fs.mkdir 創建目錄
- fs.writeFile 創建寫入文件
- fs.appendFile 追加文件
- fs.readFile 讀取文件
- fs.rename 重命名 移動文件
- fs.rmdir 刪除目錄
- fs.unlink 刪除文件
自定義模塊
- 第三方的模塊,由包組成,可以通過包來對一組具有相互依賴關系的模塊進行統一管理
包目錄
- package.json:包描述文件
- bin:用于存放可執行二進制文件的目錄
- lib:用于存放JavaScript代碼的目錄
- doc:用于存放文檔的目錄
安裝supervisor
- 作用,不用每次寫入新的內容之后關閉服務,再打開服務
- 安裝 cnpm install -g supervisor
querystring獲取get參數
- 引入 const querystring = require('querystring')
- 使用 querystring.parse(url.split(’?’)[1])
安裝cnpm
$ npm install cnpm -g --registry=https://registry.npm.taobao.org
package.json的配置
標識符
- ^表示第一位版本號不變,后面兩位取最新的
- ~表示前兩位不變,最后一個取最新
- *表示全部取最新
- 指定版本安裝,直接去掉符號即可
后端渲染的好處
利于seo優化
nodejs和前端的javascript的區別
server開發和前端開發的區別,重點在于切換思路
http請求概述
- DNS解析,簡歷TCP鏈接,發送http請求
- server接收到http請求,處理,并返回
- 客戶端接收到返回數據,處理數據(如渲染頁面,執行js)
lodash的使用(暫時放在這)
- npm i lodash
- const _ = require(‘lodash’);
- const arr = _.concat([1,2,4,[5,6]])
總結
- 上一篇: c语言怎么写贪吃蛇,刚学C语言,想写一个
- 下一篇: Cloud一分钟 | 阿里云将在英国大区