저는 node.js와 express.js를 처음 사용합니다. 나는 이것이 다소 바보라는 것을 알고 있지만, 나는이 문제를 어떻게 해결할 지 정말로 모른다. 누군가 나를 도울 수 있기를 바랍니다.express.js에 redis 레코드를 렌더링하는 방법은 무엇입니까?
나는 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를 사용하여 다음 경로 파일을 만들었습니다.
노선/
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
보기 파일을 report.js. 내가 localhost:3000/report
을 열 때
보기/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})
보기/파셜/record.jade
tr
td= store
td= apple
td= banana
td= pear
, 나는 내용은 없습니다 테이블 구조를 가져온다.
redis 호출이 비동기임을 이해합니다. 파일을 report.js
report.jade
렌더링하기 전에 redis 모든 결과를 반환합니다.
누구든지이 문제를 어떻게 해결할 수 있습니까?
감사합니다.