node常用中间件,在node中什么是中间件
什么是Express中间件?如何使用Node?下面这篇文章就给大家介绍一下快递中间件的简单用法,希望能帮到你!
node.js速度课程简介:进入学习
一、什么是Express中间件
中间件是指业务流程的中间处理环节。
二、Express中间件的调用流程
请求到达Express的服务器后,可以连续调用几个中间件对请求进行预处理。
三、中间件格式
注意:下一个参数必须包含在中间件函数的参数表中。虽然路由功能仅包含req和res,
//下一个参数必须在最后传入
const mw=(req,res,next)={
.
//最后必须调用next()
下一个()
}
四、next()函数的作用
next函数是实现多个中间件连续调用的关键,意思是将流关系转移到下一个中间件或路由。
五、全局生效的中间件
任何客户端发起的请求到达服务器后都会触发,这就是所谓的全局有效中间件。
通过调用server.use(中间件函数),可以定义一个全局有效的中间件。示例代码如下:
const mw=(req,res,next)={
下一个()
}
const mw1=(req,res,next)={
下一个()
}
//全局有效的中间件。中间件的调用顺序以传入顺序为准。
Server.use(mw,mw1)
六、局部生效的中间件
本地中间件只在指定的路由路径上生效。
const mw=(req,res,next)={
下一个()
}
const mw1=(req,res,next)={
下一个()
}
//部分有效的中间件
server.get(/),mw,(req,res)={
Res.send (path:/)
})
//定义多个部分有效的中间件。
//1,直接用逗号分隔
server.get(/),mw,mw1,(req,res)={
Res.send (path:/)
})
//2,或者使用数组来包含
server.get(/,[mw,mw1],(req,res)={
Res.send (path:/)
})
七、中间件的作用
多个中间件共享同一个req和res,基于这个特性,我们可以在上游中间件的req或res对象中统一添加自定义属性或方法,用于下游中间件或路由。
const mw=(req,res,next)={
//添加属性
req.startTime=新日期()
下一个()
}
八、Express中间件的五个注意点
路由前一定要注册中间件。
客户端发出的请求可以通过连续调用多个中间件来处理。
执行完中间件的业务代码后,不要忘记调用next()函数
为了防止代码逻辑混乱,不要在调用next()函数后编写额外的代码。
当连续调用多个中间件时,req和res对象在多个中间件之间共享。
九、Express中间件的分类
应用级中间件
路由级中间件
中间件级别错误
Express的内置中间件
第三方中间件
详细介绍:
应用层中间件
通过app.use()或app.get()或app.post()绑定到app实例的中间件称为应用级中间件。代码示例如下:
//全局有效的中间件(应用级中间件)
服务器使用(mw,mw1)
//部分有效的中间件(应用级中间件)
server.get(/),mw,mw1,(req,res)={
Res.send(`请求进入服务器的时间:$ {req.starttime } `)
})路由级中间件
绑定到express的中间件。Router()实例被称为路由级中间件。它的用法和应用级中间件没什么区别。但是,应用层中间件绑定到app实例,路由层中间件绑定到路由器实例。代码示例如下:
const router=require(。/路由器/路由器’)
//路由级中间件
router.use((req,res,next)={
下一个()
})错误级别的中间件
级别中间件的作用:用于捕捉整个项目中的异常错误,防止项目的异常崩溃。
格式:误差级中间件的函数处理函数中必须有四个参数。参数的顺序是(err,req,res,next)。
注意:错误级别的中间件,必须注册在所有路由之后!
//人为错误
server.get(/err ,(req,res)={
抛出新错误(‘人为抛出错误!)
res.send(错误页面)
})
//定义错误级别的中间件
server.use((err,req,res,next)={
Console.log(出现错误: err . message );
res.send(Error: err.message)
下一个()
})快速内置中间件
自Express 4.16.0发布以来,Express构建了三个通用中间件,极大地提高了Express项目的开发效率和体验:
Express.static内置中间件,用于快速托管静态资源,如HTML文件、图片、CSS样式等。(不兼容)
Express.json解析json格式的请求体数据(兼容,仅在版本4.16.0中可用)
Express.urlencoded以URL编码的格式解析请求正文数据(兼容,仅在4.16.0版中可用)
//配置内置中间件解析application/json格式的数据。
server.use(express.json())
//配置内置中间件解析application/x-www-form-urlencoded格式的数据。
server . use(express . urlencoded({
扩展:假
}))
//测试内置中间件解析json
server.post(/user ,(req,res)={
//在服务器端,可以使用属性req.body接受客户端发送的请求数据。
//默认情况下,如果没有配置解析表单数据的中间件,req.body默认等于undefined。
console . log(req . body);
res.send(确定)
})
//测试用于解析urlencoded的内置中间件
server.post(/book ,(req,res)={
console.log(请求体)
res.send(“预订成功”)
})第三方中间件
没有在Express中正式内置,而是由第三方开发的中间件称为第三方中间件。在项目中,您可以按需下载和配置第三方中间件,从而提高项目的开发效率。
例如,在express@4.16.0之前,通常使用第三方中间件body-parser来解析请求体数据。使用步骤如下:
运行npm install body-parser来安装中间件
使用require导入中间件
调用server.use()注册并使用中间件。
注意:Express 内置的express.urlencoded 中间件,就是基于body-parser这个第三方中间件进一步封装出来的。
更多关于node的信息,请访问:nodejs教程!即什么是Express中间件?如何使用Node?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。