node.jsとexpress.jsは初めてです。これは少しばかげていることは知っていますが、この問題を解決する方法が本当にわかりません。誰かが私を助けてくれることを願っています。
Redisにいくつかの情報が保存されています。
redis 127.0.0.1:6379> hgetall "store1"
1) "apple"
2) "10"
3) "banana"
4) "15"
5) "pear"
6) "20"
7) "name"
8) "A Street"
redis 127.0.0.1:6379> hgetall "store2"
1) "apple"
2) "30"
3) "banana"
4) "40"
5) "pear"
6) "50"
7) "name"
8) "B Street"
これらの情報を表に表示したいと思います。express.jsを使用して、次のルートファイルを作成しました。
ルート/レポート.js
var redis = require('redis'),
redisclient = redis.createClient();
exports.index = function(req, res){
redisclient.on("error", function (err) {
console.log("Error " + err);
});
var reports = [];
redisclient.keys("*", function(err, stores) {
for (var store in stores) {
redisclient.hgetall(store, function(err, figures) {
reports.push(figures);
});
}
});
res.render('report', { title: 'Store Report', reports: reports });
};
また、次のjade
ビューファイル。
views / report.jade
h1= title
table(class="table table-striped table-condensed")
thead
tr
th store
th apple
th banana
th pear
tbody
- each report in reports
!=partial('partials/record', {store:record.name, apple:record.apple, banana:record.banana, pear:record.pear})
ビュー/partials/record.jade
tr
td= store
td= apple
td= banana
td= pear
を開くlocalhost:3000/report
と、コンテンツのないテーブル構造が表示されます。
redis呼び出しが非同期であることを理解しています。beforeredisreport.js
でレンダリングされたファイルは結果を返します。report.jade
この問題を解決するにはどうすればよいですか?
ありがとう!