温馨提示  2024年 6月我们已经停止开发者板块文章内容更新,谢谢来访。存档数据
知识 2023-08-25 44 次阅读

node中间件都有哪些

   

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视频教程》