我正在構建一個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很陌生,所以我確定我做錯了什麼。
這整個應用程序,就是要調試工具只:) –