app.use(express.session({
store: new RedisStore({
host: 'localhost',
port: 6379,
db: 0,
pass: 'RedisPASS'
}),
secret: '1234567890QWERTY'
}));
以上建立redisStore来保存会话数据。但是会话值类似于: -
{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"user":{"__v":1,"_id":"52946af6eee73dc84600000c","dateOfMembership":"2013-11-26T09:33:42.633Z","email":"sa@abc.in","name":"sa@abc.in","following":[],"followers":[],"answers":[],"questions":[{"questionId":"52946b06eee73dc846000010","_id":"52946b06eee73dc846000012"}]}
这是一个字符串。我可以设法将会话的上述值存储为数组吗?
编辑:我明白我可以通过req.session.user访问所有变量...但我需要直接操作值,目前我必须使用正则表达式。
答案 0 :(得分:0)
这是一个JSON字符串(这就是RedisStore
在Redis中存储“复杂”对象的方式):
var obj = JSON.parse(sessiondata);
obj.property = newvalue;
var modifiedsessiondata = JSON.stringify(obj);