为什么这里不需要将req.session的值赋给render里的对象,页面就能识别到它?

用了express里的session中间件,

clipboard.png对象里没有user!

clipboard.png

重定向之前给req.session.user赋值了

clipboard.png 这是路由
.png](/img/bVNmO9)

这是render的页面,是怎么取到这个user值的?为什么不需要给render里的传入的对象赋一个user值?工作原理是什么?为什么有的却需要?

在这个页面跳转的下一个页面里,如果不赋值就识别不到

exports.publish=function (req,res,next) {
    return res.render('publish',{
        key:'publish',
        user:req.session.user
    });
}
阅读 2.6k
1 个回答

楼主的问题就一个问题,node中的回调赋值
node中的回调的值和一般的回调不一样,不能按一般的回调来理解,一般的回调是赋值的,这里不是赋值,是方法产生了一个值直接将其赋值为User
类比于

var user.save=function(fn){
    //产生了一个值,test
    fn(test);
}

按如上思路来理解,不懂再问我,
User.newUserSave产生了一个值,并将他赋给了user

推荐问题