我正在构建一个Node.js应用程序,我需要做的一件事是获取Redis数据存储区中的所有数据,并将其显示在此特定页。到目前为止,我的代码如下所示:获取存储在Redis中的所有内容并将其发送到模板
exports.view = function (req, res) {
rclient.keys('*', function (err, reply) {
var data = {};
// Get the value for each key
for (var i = 0; i < reply.length; i++) {
rclient.GET(reply[i], function (err, value) {
data[reply[i]] = value;
});
}
res.render('view', {title: 'Datastore', data: data});
});
};
我在这里至少有两个问题。一:由于Node.js的异步特性,当我将它传递给我的渲染函数时,数据变量是空的。避免这种情况的正确方法是什么?
二:变量我不等于我的回调中的期望值,因为循环增加了,并且由于范围的限制,在第一次迭代的回调被调用时,我等于1(它应该是0)。
我对Node.js很陌生,所以我确定我做错了什么。
这整个应用程序,就是要调试工具只:) –