app.use()的作用:
把特定的中间件加载到特定的请求路径下面
举例说明
app.use()是Express中的一个中间件函数,用于将中间件函数绑定到应用程序的路径上。它可以接收一个或多个回调函数作为参数,每个回调函数都会在请求被路由匹配之前执行。
举例说明:
假设我们有一个Express应用程序,并且需要对所有请求进行身份验证。我们可以使用app.use()来绑定一个身份验证中间件函数,如下所示:
const express = require('express');
const app = express();
// 身份验证中间件
function authenticate(req, res, next) {
// 检查用户是否已经登录
if (req.session.user) {
// 如果已经登录,则继续处理请求
next();
} else {
// 如果未登录,则重定向到登录页面
res.redirect('/login');
}
}
// 将身份验证中间件绑定到所有路由上
app.use(authenticate);
// 处理GET /home请求的路由处理器
app.get('/home', function(req, res) {
res.send('欢迎访问主页!');
});
// 处理GET /profile请求的路由处理器
app.get('/profile', function(req, res) {
res.send('欢迎访问个人资料页面!');
});
// 启动服务器并监听端口号3000
app.listen(3000);
在上面的代码中,我们定义了一个authenticate()函数作为身份验证中间件,并使用app.use()将其绑定到所有路由上。当客户端发起任何类型的HTTP请求时,都会先执行authenticate()函数进行身份验证。
如果用户已经登录,则authenticate()调用next()方法以允许后面的路由处理器执行;否则它会重定向到/login页面。
这样,在浏览器输入http://localhost:3000/home或http://localhost:3000/profile时,都会先执行authenticate()进行身份认证。只有通过认证才能进入相应页面。