欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:Express框架---中間件

柚子快報激活碼778899分享:Express框架---中間件

http://yzkb.51969.com/

使用中間件

Express是一個自身功能極簡,完全是路由和中間件構成一個web開發(fā)框架:從本質上來說,一個Express應用就是在調用各種中間件。

中間件是可以訪問請求對象 (req),響應對象(res)以及next應用程序請求-響應周期中的函數。

中間件就是在請求后,響應前要執(zhí)行的函數,中間件就是函數使用app.use() 方法,可以給express應用,添加任意中間件功能函數。

中間件分類

內置中間件 自定義中間件 錯誤處理中間件 第三方中間件

1.??????內置中間件

從版本4.x開始,

Express不再依賴于

Connect。之前包含在

Express中的中間件功能現在位于單獨的模塊中; 查看

中間件功能列表。

Express具有以下內置中間件功能:

express.static提供靜態(tài)資源,如HTML文件,圖像等。express.json使用JSON有效負載解析傳入的請求。注意:適用于Express 4.16.0+express.urlencoded用URL編碼的有效負載解析傳入的請求。 注意:適用于Express 4.16.0+

1. express.static()

指定一個目錄為靜態(tài)資源目錄

客戶端可以直接訪問靜態(tài)資源目錄中的文件(目錄暴露出來)

代碼示例:

app.use(express.static(path.join(__dirname,"public")))

2.?express.json()

解析post方式提交的application/json格式的數據

代碼示例:

app.use(express.json())

3. express.urlencoded()

解析post方式提交的application/x-www-form-urlencoded 格式的數據

代碼示例:

app.use(express.urlencoded({extended:false}))

2.自定義中間件

根據需求自己定義中間件

代碼示例:

//自定義中間件

app.use(function (req, res, next) {

console.log(Date.now() + ':我是中間環(huán)節(jié)....');

next();

})

?

//跨域

app.use((req, res, next) => {

res.header("Access-Control-Allow-Origin", "*");//解決跨域

next() //轉發(fā)請求

})

//調用postData函數,會得到一個函數

let postData = function () {

return function (req, res, next) {

let arr = []

req.on('data', chunk => {

arr.push(chunk)

})

req.on("end", () => {

// console.log(Buffer.concat(arr).toString());

req.body = Buffer.concat(arr).toString();

next();

})

}

}

//自定義中間件 ---->取出post參數

app.use(postData())

3.錯誤處理中間件

錯誤處理中間件總是需要四個參數。您必須提供四個參數以將其標識為錯誤處理中間件函數。即使您不需要使用該next對象,也必須指定它以保持簽名。否則,該next對象將被解釋為常規(guī)中間件,并且將無法處理錯誤。

以與其他中間件函數相同的方式定義錯誤處理中間件函數,除了四個參數而不是三個,特別是簽名(err, req, res, next)):

?注意:錯誤處理中間件,一般出現在代碼的下面

//錯誤處理中間件

app.use(function(req,res){

res.send({

code:500,

msg:"地址錯誤,請檢查后重新訪問"

})

})

4.第三方中間件

使用第三方中間件為Express應用程序添加功能。

安裝Node.js模塊以獲得所需的功能,然后在應用程序級別或路由器級別將其加載到您的應用程序中。?

示例:

1. serve-favicon

可以設置前端頁面訪問時的圖標

安裝:

npm install server-favicon

引入:

const favicon=require("serve-favicon")

?代碼示例:

app.use(favicon(path.join(__dirname,"favicon.ico")))

2. svg-captcha

是一個可以生成驗證碼的第三方中間件

安裝:

npm install svg-captcha

?引入:

//導入驗證碼生成中間件

const svgCaptcha= require("svg-captcha")

代碼示例:

//生成驗證碼

router.get('/code',(req,res)=>{

//創(chuàng)建驗證碼對象

// const captcha= svgCaptcha.create();

const captcha= svgCaptcha.create({

size:5, //驗證碼字符個數

ignoreChars:"0oi1l",//忽略字符

noise:5,//干擾線

background:"#eeeeee",

color:true,//字符是否有顏色

});

console.log(captcha.text);

res.type("svg");//設置媒體類型(MIME)

res.send(captcha.data);//將svg格式的圖片響應給前端

})

3.?formidable

文件上傳

安裝:

npm install formidable

?引入:

const formidable=require(“formidable”)

代碼示例:

服務器端代碼:

//文件上傳

app.post("/upload", (req, res) => {

const fd = formidable({//配置項

// encoding:""http:// 編碼

// uploadDir:"",//上傳文件保存目錄

//filename:""

uploadDir: path.join(__dirname, "temp")

});

//解析文件----接收文件

fd.parse(req, function (err, fields, files) {

if (err) {

res.send("上傳失?。? + err)

return;

}

//上傳成功

// console.log("fields:", fields);//字段 { usernmae: '李四' }

// console.log("files:", files);//文件信息

//將緩存文件,處理為正常文件

//1.取后綴名

let extName = path.extname(files.myfile.originalFilename) //從文件的默認名稱中,取出后綴名 xx.jpg---> .jpg

//2,生成新文件

let oldPath = files.myfile.filepath;//舊路徑

let newPath = oldPath + extName//新路徑

fs.renameSync(oldPath, newPath)

res.send("上傳成功")

})

});

前端代碼:

表單格式提交


補充

前后端數據交互總結

請求方法編碼格式前端要傳輸的數據格式后端如何獲取應用場景GETurl地址后面(querystring)url?key1=value1&key2=value2不需要中間件:req.query獲取數據POSTapplicaion/x-www-form-urlencodedform-data: key1=value1&key2=value2express.urlencoded( { extend:true } )提交數據POSTapplicaion/json(只能通過ajax)request-payload: '{ "key1":"value1","key2":"value2" }'express.json()POSTmutilpart/form-data(可以使用表單)文件流文件上傳DELETE同post刪除數據PUT同post更新數據

柚子快報激活碼778899分享:Express框架---中間件

http://yzkb.51969.com/

精彩內容

評論可見,查看隱藏內容
大家都在看:

本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯系刪除。

本文鏈接:http://gantiao.com.cn/post/19188401.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄