router.use((req, res, next) => { // export as single route in a file
if (req.isAuthenticated()) {
next();
return;
}
res.sendStatus(401);
});
const authenticate = (req, res, next) => {
if (req.isAuthenticated()) {
next();
return;
}
res.sendStatus(401);
};
以上是编写认证路由的两种方式,以便在另一条路由中使用(如下所示)。哪种方式更受欢迎?为什么?
router.post('/', authenticate, (req, res, next) => {});
答案 0 :(得分:1)
以上方式会影响ExpressJS应用的所有请求 服务,第二种方法使用面向对象的脚本 只验证那些需要身份验证的请求的方法。
假设您正在写入登录或注册API,除非另有说明,否则您不需要其身份验证参数。
<强> **** **** UPDATE 强>
第一种方法会影响路由器正在投放的所有请求。
您可能已将App.js
文件中的路由器用作
const myRoute = require('./routes/test'); // where `test.js` is a file in routes folder with your code above
app.use('/some_route', myRoute);
所有发送到http://servername:port/some_route/ ....的请求现在都会在test.js
文件中过滤。