gpt4 book ai didi

node.js - Redis + node.js 渲染对象列表

转载 作者:可可西里 更新时间:2023-11-01 11:13:54 24 4
gpt4 key购买 nike

我正在试验 node.js 和 redis,我设法获得了一些函数来使用 Mustache 作为模板引擎来呈现单个对象。

现在我需要从列表中呈现项目,如下所示

list:$(id) = [node_id_1, node_id_2, node_id_3]

node:$(id) = {"value1":1, "value2":2, "value3":3, "value4":4 }

这是我处理值(value)观的方式

//get the list of nodes
redis.lrange('list:' + req.param.list_id, 0,-1, function(err, lastNode){

//request the parameters i need from the single node
var request = ['id','type'];
redis.hmget('node:' + lastNode, request, function(err, node){
//operations on the node
});
});

现在我要渲染这些 Node 。但我不确定最好的方法是什么。我是否应该将所有内容保存在一个 js 数组中并进行计数以确保在读取所有 Node 后调用渲染函数?

可能这真的很微不足道,但我不确定,因为这是我第一次使用 redis 和 Node

谢谢,k。

最佳答案

这在异步领域确实有点棘手。我推荐 async模块,除其他外,它可以将数组映射到异步函数:

类似于:

// [nodeIds] = [1, 2, 3]
async.map(nodeIds, getNode, function (err, nodes) {
// render nodes
});

function getNode (node, next) {
redis.hmget('node' + node, ['id', 'type'], next);
}

不过请注意,hmget 将返回一个包含值的数组,这些值可能是也可能不是您想要在 View 中呈现的内容。如果对象更合适,您可以尝试 hgetall

关于node.js - Redis + node.js 渲染对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13624880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com