路由和中间件是 Node.js 和 Express 框架中用于构建 Web 应用程序的两个重要概念。
路由:
- 路由是确定如何处理来自客户端的请求并在服务器上使用相应资源进行响应的过程。
- 在 Express 中,我们可以通过指定 HTTP 方法(GET、POST、PUT、DELETE 等)和对应的 URL 路径来定义路由。
- 每个路由可以有一个或多个处理函数来执行请求处理、数据库访问以及向客户端发送响应等任务。
中间件:
- 中间件是在请求到达最终路由处理程序之前按顺序执行的函数。
- 它们用于执行常见功能并处理中间任务,例如身份验证、日志记录、错误处理等。
- 中间件可以应用于整个应用程序,也可以指定用于特定的路由。
- 每个中间件接收req(请求)和res(响应)参数,并可以执行处理,将请求传递给下一个中间件,或者通过向客户端发送响应来结束处理。
在 Express 中结合路由和中间件的示例:
const express = require('express');
const app = express();
// Middleware
const loggerMiddleware = (req, res, next) => {
console.log('A new request has arrived!');
next();
};
// Apply middleware to the entire application
app.use(loggerMiddleware);
// Main route
app.get('/', (req, res) => {
res.send('Welcome to the homepage!');
});
// Another route
app.get('/about', (req, res) => {
res.send('This is the about page!');
});
// Start the server
app.listen(3000, () => {
console.log('Server is listening on port 3000...');
});
在此示例中,我们定义了一个自定义中间件loggerMiddleware来记录传入服务器的每个新请求。使用该方法将该中间件应用于整个应用程序app.use()。然后,我们定义了两条路由,一条用于主页('/'),另一条用于关于页面('/about')。最后,我们启动服务器并监听端口 3000。
中间件loggerMiddleware将为每个请求执行,在将请求传递到序列中相应的路由处理程序或中间件之前,将消息记录到控制台。
路由和中间件的这种组合使我们能够在 Express 应用程序中处理不同的请求并高效地执行常见任务。