我正在尝试使用快速会话在我的用户会话中存储一些数据。
以下是我遇到问题的代码片段。
如你所见,我在req.session中添加了很多项目,在for循环结束时,我发回res.json(200,req.session)。
在客户端的响应中,您会看到包含我添加的所有数据的会话,但在数据库中没有存储任何数据。
} else {
req.session.user = {
username: req.body.username,
permissions: {},
authorized: true
};
for (var i = 0; i < doc.length; i++) {
req.session.user.permissions[doc[i]._id] = {
_id: doc[i]._id,
name: doc[i].name,
roles: doc[i].permissions[0].roles
};
if (i == (doc.length - 1)) {
req.session.user.currentapplication = req.session.user.permissions[req.body.application]
res.json(200, req.session);
}
}
我已经能够在if:
中取出这一行 req.session.user.currentapplication = req.session.user.permissions[req.body.application]
这很有效,我之前设置的所有数据都存储在数据库中,但显然不是用户当前的应用程序。
我尝试了另一种方法,其中req.session.user.permissions是一个数组,里面有应用程序对象,但似乎试图在for循环中添加一个或多个对象来杀死它。
任何想法都会受到赞赏,谢谢。