簡體   English   中英

如何使用Jade渲染node-mssql語句的返回值?

[英]How do I render return values of a node-mssql statement with Jade?

我有一個運行Express和Jade的Node.js服務器。 在HTTP請求上,服務器將執行以下功能:

function home(req, res) {

  res.render("site/index", {recordset: recordset}); //render the Jade template
}

現在,我想將數組傳遞給上面的記錄集變量,我可以在Jade中循環遍歷該變量以填充html頁面上的下拉列表。 我已經檢索到所需的數組,如下所示:

function runSQLSelect() {
      sql.connect(config.db, function(err) {
      var request = new sql.Request();
      request.query("select MyColumn FROM MyTable", function(err, recordset) {
        console.log(recordset);
        });
      });
}

異步運行SQL查詢並將后續結果傳遞到我的Jade模板中的正確方法是什么?

查詢的回調中將具有res.render。

function runSQLSelect(callback) {
      sql.connect(config.db, function(err) {
      var request = new sql.Request();
      request.query("select MyColumn FROM MyTable", function(err, recordset) {
        console.log(recordset);
        callback(recordset);
        });
      });
}

function home(req, res) {
  runQSQLSelect( function(result) {
      res.render("site/index", {recordset: result}); //render the Jade template
  });
}

注意,您可能希望使用setImmediate以異步方式調用回調,也可以考慮讓runSQLSelect回調利用接受兩個參數callback(err,data)的標准節點實踐。

暫無
暫無

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

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