在mongoose模型中设置req.session

时间:2016-10-17 16:58:22

标签: node.js express mongoose mongoose-schema express-session

嘿伙计们我试图通过处理我的用户模型中设置的所有值来使会话设置变得非常容易。我怎样才能实现以下目标:

userSchema.methods.setSession = function () {
    var user = req.session.user; //create the session object

    //set any values I want here
    user.firstName = this.firstName;
    user.lastName = this.lastName;
    user.school = this.school;
    user.email = this.email;
    user.admin = this.admin;
    user.moderator = this.moderator;
}

我遇到的问题是没有定义req。有没有办法在这里访问req?

1 个答案:

答案 0 :(得分:0)

我利用mongoose为用户获取所有数据。然后我将该数据传递给setSession方法并设置所有所需的会话数据。现在,如果我需要一个新的会话变量,我可以在我的用户模型中更新它。

这是我的解决方案。在我的路线中,我把:

user = new User();
userData = someUserObjectIPulledFromMongo;

//pass user data to setSession function
user.setSession(userData ,req, function (data) {

});

我在用户模型中制作的方法:

userSchema.methods.setSession = function (user, req, callback) {
    //specify any desired session data in here
    sessionData = {
        firstName: user.firstName,
        lastName: user.lastName,
        email: user.email,
    }
    //pass temporary session object to req.session
    req.session.user = sessionData;
    callback(true);
}