将变量从app.get传递到哈巴狗视图

时间:2018-08-08 07:53:39

标签: node.js api express variables pug

我有以下代码调用我的数据库并提取信息

    // GET the number of apples left in stock
    app.get('/apples', function (req, res) {
        sql.connect(config, function() {
            var request = new sql.Request();
            request.query("select quantity from table WHERE type = 'apple'", function(err, recordset) {
        var arrayLength = recordset.length;
        for (var i = 0; i < arrayLength; i++) {
        console.log(recordset[i]["quantity"]);
res.render('index', {results: recordset});
        };
    });
})
})

这很完美..当我浏览到该页面时,它会将我发送到索引页面,然后我可以在控制台日志中看到DB吐出的值

然后在我的index.pug文件中

h3(align='middle') #{results}

在索引页面上,我仅看到此[object Object]

1 个答案:

答案 0 :(得分:2)

首先,您不应该在for循环中多次调用res.render

app.get('/apples', function (req, res) {

  sql.connect(config, function () {

    var request = new sql.Request();
    request.query("select quantity from table WHERE type = 'apple'", function (err, recordset) {
      var arrayLength = recordset.length;
      for (var i = 0; i < arrayLength; i++) {
        console.log(recordset[i]["quantity"]);
      };
      res.render('index', { results: recordset });
    });
  });
});

然后,您应该在帕格文件中使用each来迭代结果集。 更多迭代文档:https://pugjs.org/language/iteration.html

each val in results
  h3(align='middle')=val.quantity