虛擬機(jī) vmware liniux士败?
Node.js——服務(wù)器端語(yǔ)言
http://nodejs.cn/
https://nodejs.org/
用途
- 中間層
安全性——客戶端直接連接主服務(wù)器,主服務(wù)器暴露給客戶端是有安全隱患的
性能——可以緩存,匯總請(qǐng)求,可以到處布點(diǎn)幫助用戶提高訪問速度
降低主服務(wù)器復(fù)雜度——可以完成一些零散的功能,主服務(wù)器負(fù)責(zé)核心功能 - 小型服務(wù)
- 工具——babel摇庙,webpack是用nodejs實(shí)現(xiàn)的
優(yōu)勢(shì)
- 便于前端入手
- 性能高
- 利于和前端代碼整合
搭建
- 換源
npm install cnpm -g --registry=https://registry.npm.taobao.org - 安裝
npm install xxx
npm i xxx
cnpm i xxx - 刪除
npm uninstall xxx
npm un xxx
cnpm un xx
怎么卸載低版本
1.卸載node本身、刪除nodejs目錄
2.手動(dòng)刪除C:\Program Files\nodejs\node_modules
3.手動(dòng)刪除C:\users\你\node_modules\
運(yùn)行nodejs程序
- 進(jìn)入需要運(yùn)行的js文件目錄
cd x: - 運(yùn)行
node x.js
包:
- 安裝
cnpm i 包名稱遥缕,例如 cnpm i multer - 引入
const multer = require('multer'); - 使用
const http = require('http'); let server = http.createServer(() => { //請(qǐng)求 console.log('請(qǐng)求來了'); }); //監(jiān)聽 server.listen(8080);
Nodejs基礎(chǔ)結(jié)構(gòu)和數(shù)據(jù)處理
示例代碼見:https://github.com/xiaowuzi2012/nodeJsStudy
服務(wù)器
- 功能
響應(yīng)請(qǐng)求--處理接口
數(shù)據(jù)交互--處理文件
數(shù)據(jù)庫(kù)--存儲(chǔ)數(shù)據(jù) - HTTP——協(xié)議
HTTP 1.0 RFC-1945 非持久連接
HTTP 1.1 RFC-2616 持久連接
HTTPS RFC-2818 安全協(xié)議
HTTP 2.0 RFC-7540 加密卫袒、頭部壓縮、服務(wù)器推送单匣、管線操作夕凝、多路復(fù)用 - http報(bào)文結(jié)構(gòu)
header 大小<=32K
body 大小<=2G - 狀態(tài)碼
1xx 信息
2xx 成功
3xx 重定向
4xx 請(qǐng)求錯(cuò)誤宝穗,客戶端錯(cuò)誤
5xx 服務(wù)器錯(cuò)誤 - 請(qǐng)求方式
GET 獲取,一次傳輸码秉,數(shù)據(jù)放在url里面?zhèn)鬏數(shù)拇萘啃?lt;=32K
POST 發(fā)送數(shù)據(jù),一個(gè)請(qǐng)求多次傳輸转砖,容量大 - 接收瀏覽器的GET數(shù)據(jù)——url
url模塊
url.parse(req.url, true)=>{
pathname, query
}
GET=>"/aaa/b?xx=xxx&xxx=xx"
url.parse('xx') - 接收瀏覽器的POST數(shù)據(jù)——body
分幾次
let arr=[];
req.on('data', buffer=>{
arr.push(buffer);
});
req.on('end', ()=>{
let buffer=Buffer.concat(arr);
})
POST=>"xx=xxx&xxx=xx"
querystring.parse('xx')
Node.js的模塊系統(tǒng)
- 定義模塊
module 批量導(dǎo)出
exports 單個(gè)導(dǎo)出
require 加載模塊 - 加載模塊
如果帶有路徑——去路徑下面找
如果沒有路徑——先找本項(xiàng)目的 node_modules文件夾须鼎,再找系統(tǒng)的node_modules文件夾