gpt4 book ai didi

javascript - 从中间件中排除指定的路由

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:10 25 4
gpt4 key购买 nike

我有这个中间件来检查用户 session 的每个路由。如果用户登录,这只是简单地执行,转到下一个功能。

router.use(function(req, res, next){
if(!req.user){
res.redirect('/login');
}else{
res.locals.username = req.user.username;
return next();
}
});

但是如何将其排除在某些路线上呢?例如,我也想在我的应用程序中使用公共(public) API。像 example.com/api/items 一样,不应检查用户登录 session 。

最佳答案

req.originalUrl 告诉您 URL 是什么,以便您可以通过在中间件函数中检查 URL 来决定跳过逻辑。

或者,您可以为在此路由器之前处理的公共(public)路径设置一个单独的路由器,这样如果请求与公共(public)路径路由器匹配,那么它已经被处理,因此后面的路由器中的中间件不会被处理叫。这就是 Express 希望您通过使用单独的路由器为不同的顶级路径拥有不同的中间件。

关于javascript - 从中间件中排除指定的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com