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'))//括号中是设置的静态文件路径4、cors、koa-cors、koa-cors2設定請求頭這幾個中間件基本上我都是用來配置跨域和請求頭的資訊
const cors = require('koa2-cors') app.use(cors({ exposeHeaders: ['multipart/form-data','application/x-www-form-urlencoded'] }))可以自己設定參數也可以不設定參數直接app.use(cors())就可以跨域。 這裡說到跨域就順便提一提原生node跨域的設定方法(同樣可以設定請求頭的各種配置)
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中文網其他相關文章!