推荐答案
在 Express 中,中间件可以分为以下几种类型:
- 应用级中间件:通过
app.use()或app.METHOD()绑定到应用实例上的中间件。 - 路由级中间件:通过
router.use()或router.METHOD()绑定到express.Router()实例上的中间件。 - 错误处理中间件:专门用于处理错误的中间件,通常有四个参数
(err, req, res, next)。 - 内置中间件:Express 内置的中间件,如
express.static、express.json和express.urlencoded。 - 第三方中间件:由第三方开发者提供的中间件,如
body-parser、cors等。
本题详细解读
1. 应用级中间件
应用级中间件是通过 app.use() 或 app.METHOD() 绑定到 Express 应用实例上的中间件。它可以对所有请求或特定路径的请求进行处理。
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});2. 路由级中间件
路由级中间件是通过 router.use() 或 router.METHOD() 绑定到 express.Router() 实例上的中间件。它通常用于处理特定路由的请求。
const router = express.Router();
router.use((req, res, next) => {
console.log('Request URL:', req.originalUrl);
next();
});3. 错误处理中间件
错误处理中间件专门用于处理请求过程中发生的错误。它必须有四个参数 (err, req, res, next)。
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});4. 内置中间件
Express 提供了一些内置中间件,用于处理常见的任务,如静态文件服务、解析请求体等。
app.use(express.static('public'));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));5. 第三方中间件
第三方中间件是由社区开发者提供的中间件,可以通过 npm 安装并使用。常见的第三方中间件包括 body-parser、cors 等。
const bodyParser = require('body-parser');
const cors = require('cors');
app.use(bodyParser.json());
app.use(cors());