在mongoose模型中设置req.session

时间:2021-07-12 02:34:13

Hey guys I am trying to make session setting very easy by handling all values that are set in my User model. How can I achieve the following:

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

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;
}

The problem I am having is that req is not defined. Is there a way to access req in here?

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

1 个解决方案

#1


0  

I utilize mongoose to grab all data for the user. Then I pass that data to the setSession method and set all desired session data. Now if I need a new session variable I can just update it in my User Model.

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

Here is my solution. In my route I put:

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

user = new User();
userData = someUserObjectIPulledFromMongo;

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

});

The method I made within my User model:

我在User模型中创建的方法:

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);
}

#1


0  

I utilize mongoose to grab all data for the user. Then I pass that data to the setSession method and set all desired session data. Now if I need a new session variable I can just update it in my User Model.

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

Here is my solution. In my route I put:

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

user = new User();
userData = someUserObjectIPulledFromMongo;

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

});

The method I made within my User model:

我在User模型中创建的方法:

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);
}