Как я могу рендерировать возвратные значения выступления Node-MSSQL с JADE?
-
02-01-2020 - |
Вопрос
У меня есть сервер Node.js с Express и Jade работает.На HTTP-запросе сервер будет выполнять следующую функцию:
function home(req, res) {
res.render("site/index", {recordset: recordset}); //render the Jade template
}
.
Теперь я хотел бы пройти в массиве в вышеуказанную переменную записи, которую я могу перебраться в нефрите, чтобы заполнить раскрывающуюся страницу на моей 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 и пройти последующий результат в мой нефритовый шаблон?
Решение
У вас будет 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 обратный вызов использует стандартную практику узела для принятия двух параметров Renacodicetacode.