我想在同一个网页上列出两组不同的消息,但我一直没有这样做。
如果我只想列出如下所示的一组消息,这很容易。
router.get("/index", function(req, res) {
redisClient.lrange('chat:messages', 0, -1, function(err, messages) {
if (err) {
console.log(err);
} else {
var message_list = [];
messages.forEach(function(message, i) {
message_list.push(message);
});
res.render("index", { messages: message_list });
}
});
});
但是,我想列出两组消息,所以我真正想做的就是如下。
router.get("/index", function(req, res) {
redisClient.lrange(['chat:messages1', 'chat:messages2'], 0, -1, function(err, messages) {
if (err) {
console.log(err);
} else {
var message_list1 = [];
var message_list2 = [];
messages[0].forEach(function(message, i) {
message_list1.push(message);
});
messages[1].forEach(function(message, i) {
message_list2.push(message);
});
res.render("index", { messages1: message_list1, messages2: message_list2 });
}
});
});
此代码不起作用,但我希望我能够让您知道我想要做什么。
是否可以在同一页面上列出两组消息?
如果是这样,我应该如何调整我的代码才能使其正常工作?
答案 0 :(得分:2)
lrange
命令只接受一个键加索引。使用多块重写逻辑是否合理:
redisClient.multi()
.lrange('chat:messages1', 0, -1)
.lrange('chat:messages2', 0, -1)
.exec(function (err, replies) {
replies.forEach(function (reply, index) {
// do your computation
});