node中間件有:1、koa-bodyparser;2、koa-body;3、靜態資源管理器koa-static;4、cors;5、koa-cors;6、koa-cors2設定請求頭等等。
本文操作環境:Windows7系統,nodejs10.16.2版,Dell G3電腦。
node中間件都有哪些?
node中間件類型:
node中間件就是封裝在程式中處理http請求的功能。 node中間件是在管道中執行。中間件位於客戶機/ 伺服器的作業系統之上,管理電腦資源和網路通訊。
中間件為主要的邏輯業務所服務,可分為:應用級中間件、路由級中間件、內建中間件、第三方中間件、錯誤級中間件。
node常用的中間件:
在node的學習過程中累積了許多好用的中間件。這些中間件大部分要個koa配合使用
1、koa-bodyparser
這個外掛程式使用來解析前端post請求帶來的參數的
//入口文件 const bodyParser = require('koa-bodyparser'); app.use(bodyParser({//设置可以接收的数据类型 enableTypes:['json', 'form', 'text'] })) async function (ctx) { console.log(ctx.request.body) ctx.req.on('data',(data) => { console.log(JSON.parse(data),'文件') }) }
在沒有引入koa-bodyparser的情況下只能透過ctx.req.on('data',callback)來取得參數
而引入中間件後只要ctx.request.body就可以取得到參數。相比第一種便利很多。
2、koa-body
這個外掛程式是用來取得請求中上傳的檔案和檔案資訊例如圖片過zip檔案
const koaBody = require('koa-body') app.use(koaBody({ multipart: true, formidable: { maxFileSize: 20 * 1024 * 1024 // 设置上传文件大小最大限制,默认2M } }))
在請求的處理中就可以直接透過ctx.request.files就能取得到所有上傳的檔案的資訊。
注意! ! !用了koa-body就不要在使用koa-bodyparser會衝突導致前端的post請求回傳的status碼為canceled
3、靜態資源管理器koa-static
##在本地測試的時候我上傳了一張圖片,然後將圖片地址打印後是一長串的c://.../name/.png,這樣雖然在本地能夠訪問但是如果放到伺服器上就行不通了! 透過引入koa-static可以將靜態檔案位址指定到專案路徑上的某個資料夾然後透過koa監聽的連接埠直接http://192.168.0.177:3030/name.png就能存取圖片了const koaStatic = require('koa-static') app.use(koaStatic('./public'))//括号中是设置的静态文件路径
const cors = require('koa2-cors') app.use(cors({ exposeHeaders: ['multipart/form-data','application/x-www-form-urlencoded'] }))
app.use(async (ctx, next) => { ctx.set('Access-Control-Allow-Origin', ctx.headers.origin)//'*'有可能会问题 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() })
node.js影片教學》
以上是node中間件都有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!