express中间件详解

Express中间件是一个函数,它可以访问请求对象(req)、响应对象(res)和next函数。中间件的主要作用是在处理请求之前或之后执行一些操作,例如验证用户身份、记录日志、解析请求体等。

使用Express中间件有两种方式:应用级别和路由级别。

1. 应用级别中间件

应用级别中间件会在所有路由处理程序之前执行,并且可以通过app.use()方法添加到应用程序实例上。例如:

const express = require('express');
const app = express();

// 日志记录
app.use((req, res, next) => {
console.log(`${new Date().toISOString()} - ${req.method} ${req.url}`);
next();
});

// 解析请求体
app.use(express.json());

// 处理路由
app.get('/', (req, res) => {
res.send('Hello World!');
});




上面的代码定义了两个应用级别中间件:日志记录和解析JSON请求体。这些中间件将在所有路由处理程序之前执行。

2. 路由级别中间件

路由级别中间件只会对指定的路由进行处理,并且可以通过router.use()方法添加到特定的Router实例上。例如:

const express = require('express');
const router = express.Router();

// 验证用户身份
router.use((req, res, next) => {
if (req.session.user) {
next();
} else {
res.status(401).send('Unauthorized');
}
});

// 处理路由
router.get('/', (req, res) => {
res.send(`Welcome ${req.session.user.name}!`);
});




上面的代码定义了一个路由级别中间件来验证用户身份,并且只有经过验证的用户才能访问该路由。

总结:

Express 中使用 middleware 的方式非常灵活,既可以全局使用也可以针对某个具体接口进行设置,这样就使得我们能够更好地控制接口调用流程,提高系统可靠性和安全性。

express中间件详解_第1张图片

最后再问: express最多可以调用多少个中间件
Express 框架没有限制中间件的数量,可以根据需要调用任意多个中间件。但是,过多的中间件可能会影响应用程序的性能和可维护性。因此,在编写 Express 应用程序时,应该仅使用必要的中间件,并尽可能将它们组合成更小、更简单和更易于维护的模块。

你可能感兴趣的:(express,中间件)