引言
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,常用于构建服务器端应用。Express 是一个基于 Node.js 的 web 应用框架,它简化了许多常见的任务,如路由和中间件管理。本文将介绍 Node.js 中的中间件机制以及如何在 Express 中使用中间件。
Node.js 中间件机制
在 Node.js 中,中间件是一个处理 HTTP 请求的函数。它可以执行以下任务:
- 执行任何代码。
- 修改请求和响应对象。
- 结束请求-响应循环。
- 调用堆栈中的下一个中间件。
通常,中间件遵循以下模式:
const express = require('express');
const app = express();
const myMiddleware = (req, res, next) => {
console.log('Request URL:', req.originalUrl);
next(); // 调用堆栈中的下一个中间件
};
app.use(myMiddleware);
Express 中间件
Express 内置了一些常用的中间件,如 express.json()
用于解析 JSON 请求体,express.urlencoded()
用于解析 URL 编码的请求体。此外,Express 也允许开发者编写自定义中间件。
// 使用内置中间件解析 JSON 请求体
app.use(express.json());
// 自定义中间件记录请求方法
app.use((req, res, next) => {
console.log('Request Method:', req.method);
next();
});
错误处理中间件
错误处理中间件用于捕获应用程序中的错误并发送适当的错误响应。它通常放在所有其他中间件之后。
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
结论
中间件机制是 Node.js 和 Express 的核心概念之一,它允许开发者以模块化的方式处理 HTTP 请求。通过合理使用中间件,我们可以简化代码,提高应用程序的可维护性和扩展性。