簡體   English   中英

如何在express.js中呈現redis記錄?

[英]How to render redis records in express.js?

我是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,我創建了以下路由文件。

路線/report.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})

視圖/部分/record.jade

tr
  td= store
  td= apple
  td= banana
  td= pear

當我打開localhost:3000/report ,我得到的表結構沒有內容。

我了解Redis呼叫是異步的。 在redis返回任何結果之前, report.js文件呈現了report.jade

誰能告訴我如何解決這個問題?

謝謝!

嘗試使用異步模塊,在所有IO操作完成后執行回調以呈現結果。

來自異步自述文件的代碼示例:

async.parallel([
    function(){ ... },
    function(){ ... }
], callback);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM