Express redisStore: - 我可以将会话存储为Array而不是String吗?

时间:2013-11-28 19:08:41

标签: session express redis

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访问所有变量...但我需要直接操作值,目前我必须使用正则表达式。

1 个答案:

答案 0 :(得分:0)

这是一个JSON字符串(这就是RedisStore在Redis中存储“复杂”对象的方式):

var obj = JSON.parse(sessiondata);
obj.property = newvalue;
var modifiedsessiondata = JSON.stringify(obj);