2022-02-27 Node.js Express框架学习笔记(三) 中间件(Middleware):局部中间件,应用级中间件,路由级中间件,错误处理中间件

本文详细介绍了Node.js Express框架中的中间件概念,包括中间件的本质、调用流程、作用以及分类。特别讨论了局部中间件、应用级中间件、路由级中间件和错误处理中间件的使用和示例,帮助开发者理解如何在不同场景下合理运用中间件。
摘要由CSDN通过智能技术生成

0.Express中间件的概念
定义

业务流程的中间处理环节

本质

一个function处理函数,参数:请求对象req,响应对象res,中间件next

app.use(function(req,res,next) {
   
	...
	next();
})
调用流程

当一个请求到达Express的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理。

next参数&next()函数
中间件函数的形参列表中,必须包含next参数,路由处理函数中只包含req和res.
next函数的作用:表示把流转关系转交给下一个中间件或路由。
是实现多个中间件连续调用的关键

意思就是没有next形参和调用next(),不能往下执行下一个回调函数

中间件的作用
  • 执行任何代码
  • 修改请求&响应对象
  • 终结请求&响应循环
  • 调用下一个中间件
中间件的分类
  • 应用级中间件
  • 路由级中间件
  • 错误处理中间件
  • 内置中间件
  • 第三方中间件
注意事项
1.一定要在路由之前注册中间件
2.客户端发送过来的请求,可以连续调用多个中间件进行处理
3.执行完中间件的业务代码之后,不要忘记调用 next() 函数
4.为了防止代码逻辑混乱,调用 next() 函数后不要再写额外的代码
5.连续调用多个中间件时,多个中间件之间,共享 req 和 res 对象
6.多个中间件只能在其中一个中间件中有一个res.send()语句,否则报错
1.局部生效的中间件

使用 app.use() 定义的中间件,叫做局部生效的中间件

示例
var func1 = (req, res, next) => {
   
    console.log('调用了局部生效的中间件');
    next();
}
var func2 = (req, res, next) => {
   
    console.log('调用了全局生效的中间件');
    next();
};
app.use(func2);//func2这个中间件在当前所有路由中自动调用生效
app.get('/', func1, (req, res) => {
    res.send('Home page.') }); // func1这个中间件只在当前路由中生效
app.get('/user', (req, res) => {
    res.send('User page.') });
2.应用级中间件(全局)

应用级中间件绑定到app对象,使用app.use()和app.METHOD(),
其中,METHOD表示需要处理的http请求的方法如get,post,put等等

app.use();
app.get();
app.post();
...
都可以注册中间件
语法
var express = require('
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值