[英]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.