NODE-MSSQLステートメントの戻り値をJADEでレンダリングする方法
-
02-01-2020 - |
質問
ExpressとJade Runningを搭載したNode.jsサーバーを持っています。HTTPリクエストでは、サーバーは次の機能を実行します。
function home(req, res) {
res.render("site/index", {recordset: recordset}); //render the Jade template
}
.
今度は、JADEでループすることができる上記のRecordSet変数に配列を渡したいと思います。
のように目的の配列を取得しました。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テンプレートに渡すための適切な方法は何ですか?
解決
Queryからのコールバックに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
を使用して、Asyncファッションでコールバックを呼び出すことをお勧めします。これも、RunSQLSelectコールバックを使用すると、2つのパラメータcallback(err,data)
を受け入れる標準ノード慣行を使用しています。
所属していません StackOverflow