Как я могу рендерировать возвратные значения выступления Node-MSSQL с JADE?

StackOverflow https://stackoverflow.com//questions/23065966

Вопрос

У меня есть сервер 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top