express在检查用户是否登录真的需要这么麻烦吗?
发布于 10 年前 作者 zhongzhu 4496 次浏览 最后一次编辑是 8 年前 来自 问答

是不是必须用“同一路径绑定多个响应函数的方法,通过调用 next() 转移控制权"的方式?感觉好繁琐。 router.get("/logout", checkLogin); router.get("/logout",function(req,res) { req.session.user = null; req.flash(‘success’, ‘退出成功’); res.redirect(’/’); });

2 回复

可以写成:

router.get '/logout', checkLogin, (req, res) ->

如果接下来所有的路由都需要检查,也可以:

router.use checkLogin
app.use(function(req,res,next){
    if (!req.session.user) {  
        if(req.url == "/admin/doLogin"){  
        next();  
    }  
    res.render('admin/login');  
}else if (req.session.user) {  
    next();  
}  

});
在app.js中加这样一段就行了,代码位置也有关系,自己测试

回到顶部