推荐答案
在 Express 中,路由级中间件是指绑定到特定路由路径的中间件函数。它通常用于处理特定路由的请求,并且只在匹配到该路由时才会执行。路由级中间件可以通过 app.use() 或 app.METHOD()(如 app.get()、app.post() 等)来定义。
示例代码
// www.javascriptcn.com code example
const express = require('express');
const app = express();
// 路由级中间件
app.use('/api', (req, res, next) => {
console.log('路由级中间件执行');
next();
});
app.get('/api/users', (req, res) => {
res.send('用户列表');
});
app.listen(3000, () => {
console.log('服务器运行在 http://localhost:3000');
});在这个例子中,/api 路径的路由级中间件会在请求 /api/users 时执行。
本题详细解读
什么是路由级中间件?
路由级中间件是 Express 框架中的一种中间件类型,它与特定的路由路径绑定。当请求的 URL 匹配到该路径时,中间件函数会被调用。路由级中间件通常用于处理特定路由的请求逻辑,例如权限验证、日志记录等。
路由级中间件的使用场景
- 权限验证:在访问某些敏感路由时,可以使用路由级中间件来验证用户的权限。
- 日志记录:记录特定路由的访问日志。
- 请求预处理:在进入路由处理函数之前,对请求进行预处理,如解析请求体、设置请求头等。
路由级中间件与应用程序级中间件的区别
- 应用程序级中间件:通过
app.use()定义,适用于所有路由。 - 路由级中间件:通过
app.use(path, middleware)或app.METHOD(path, middleware)定义,仅适用于特定路径的路由。
示例解析
在示例代码中,app.use('/api', middleware) 定义了一个路由级中间件,它会在所有以 /api 开头的路由请求时执行。例如,当访问 /api/users 时,中间件会先执行,然后才会进入 /api/users 的路由处理函数。
注意事项
- 路由级中间件的执行顺序与定义顺序有关,先定义的中间件会先执行。
- 如果中间件函数中没有调用
next(),请求将不会继续传递到下一个中间件或路由处理函数。