這篇文章給大家分享的是有關(guān)node有哪些中間件的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有十多年的成都網(wǎng)站開(kāi)發(fā)建設(shè)經(jīng)驗(yàn),近1000家客戶的共同信賴。提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站開(kāi)發(fā)、網(wǎng)站定制、買鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)公司、網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
node中間件有:1、koa-bodyparser;2、koa-body;3、靜態(tài)資源管理器koa-static;4、cors;5、koa-cors;6、koa-cors2設(shè)置請(qǐng)求頭等等。
本文操作環(huán)境:Windows7系統(tǒng),nodejs10.16.2版,Dell G3電腦。
node中間件類型:
node中間件就是封裝在程序中處理http請(qǐng)求的功能。node中間件是在管道中執(zhí)行。中間件位于客戶機(jī)/ 服務(wù)器的操作系統(tǒng)之上,管理計(jì)算機(jī)資源和網(wǎng)絡(luò)通訊。
中間件為主要的邏輯業(yè)務(wù)所服務(wù),可分為:應(yīng)用級(jí)中間件、路由級(jí)中間件、內(nèi)置中間件、第三方中間件、錯(cuò)誤級(jí)中間件。
node常用的中間件:
在node的學(xué)習(xí)過(guò)程中積累了許多好用的中間件。這些中間件大部分要個(gè)koa配合使用
1、koa-bodyparser
這個(gè)插件使用來(lái)解析前端post請(qǐng)求帶來(lái)的參數(shù)的
//入口文件 const bodyParser = require('koa-bodyparser'); app.use(bodyParser({//設(shè)置可以接收的數(shù)據(jù)類型 enableTypes:['json', 'form', 'text'] })) async function (ctx) { console.log(ctx.request.body) ctx.req.on('data',(data) => { console.log(JSON.parse(data),'文件') }) }
在沒(méi)有引入koa-bodyparser的情況下只能通過(guò)ctx.req.on('data',callback)來(lái)獲取參數(shù)
而引入中間件后只要ctx.request.body就可以獲取到參數(shù)。相比第一種便利很多。
2、koa-body
這個(gè)插件是用來(lái)獲取請(qǐng)求中上傳的文件和文件信息比如圖片過(guò)zip文件
const koaBody = require('koa-body') app.use(koaBody({ multipart: true, formidable: { maxFileSize: 20 * 1024 * 1024 // 設(shè)置上傳文件大小最大限制,默認(rèn)2M } }))
在請(qǐng)求的處理中就可以直接通過(guò)ctx.request.files就能獲取到所有上傳的文件的信息。
注意!?。∮昧薻oa-body就不要在使用koa-bodyparser會(huì)沖突導(dǎo)致前端的post請(qǐng)求返回的status碼為canceled
3、靜態(tài)資源管理器koa-static
在本地測(cè)試的時(shí)候我上傳了一張圖片,然后將圖片地址打印后是一長(zhǎng)串的c://.../name/.png,這樣雖然在本地能夠訪問(wèn)但是如果放到服務(wù)器上就行不通了!
通過(guò)引入koa-static可以將靜態(tài)文件地址指定到項(xiàng)目路徑上的某個(gè)文件夾然后通過(guò)koa監(jiān)聽(tīng)的端口直接http://192.168.0.177:3030/name.png就能訪問(wèn)圖片了
const koaStatic = require('koa-static') app.use(koaStatic('./public'))//括號(hào)中是設(shè)置的靜態(tài)文件路徑
4、cors、koa-cors、koa-cors2設(shè)置請(qǐng)求頭
這幾個(gè)中間件基本我都是用來(lái)配置跨域和請(qǐng)求頭的信息
const cors = require('koa2-cors') app.use(cors({ exposeHeaders: ['multipart/form-data','application/x-www-form-urlencoded'] }))
可以自己設(shè)置參數(shù)也可以不設(shè)置參數(shù)直接app.use(cors())就可以跨域。
這里說(shuō)到跨域就順便提一提原生node跨域的設(shè)置方法(同樣可以設(shè)置請(qǐng)求頭的各種配置)
app.use(async (ctx, next) => { ctx.set('Access-Control-Allow-Origin', ctx.headers.origin)//'*'有可能會(huì)問(wèn)題 ctx.set('Access-Control-Allow-Credentials', 'true') ctx.set('Access-Control-Allow-Headers', 'Origin ,multipart/form-data, X-Requested-With, Content-Type, Accept') await next() })
感謝各位的閱讀!關(guān)于“node有哪些中間件”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
分享文章:node有哪些中間件
本文路徑:http://jinyejixie.com/article6/ggedig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、微信公眾號(hào)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站建設(shè)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)