将一个mongodb find()的结果存储在connect-mongo会话存储中

时间:2013-10-14 14:53:23

标签: node.js mongodb express

我目前在Express网络应用中设置了mongodb会话商店。我知道如何设置这样的单个字段:

request.session.loggedIn = true;

我想简单地将所有字段存储在结果对象中,而不是逐个指定它们,如下所示:

targetcol.find({username: uname, password: pw}).toArray(function(err, results) {
    if( err || !results)
        console.error(err);
    else {
        console.log("login success");
        request.session = results[0];
    }
}

request.session = results[0];作为将整个JSON对象分配给会话存储的部分。这是可能的还是我必须单独进行?

1 个答案:

答案 0 :(得分:1)

如果您愿意加入Lo-Dash,可以使用extend()函数将results[0]的所有属性复制到session

request.session = _.extend(request.session, results[0]);

但请注意session中的任何属性都会被results[0]中的同名属性覆盖。