Вы должны использовать концепцию обещания , которая может сделать последовательность вещей только в транспортире.
Функция, с помощью которой вы можете выполнить запрос в javascript при использовании транспортир и другие тоже
1) Здесь вы можете выполнить запрос, вызвав пользовательскую функцию runQuery .Мы будем использовать вложенные с ключевым словом , затем
Затем справку, останавливаясь, пока не выполнится первый запрос.Он будет ждать наступления возраста, прежде чем вычислять DOB
query = " select age from employee"
// Query to get age from employee
db.runQuery(query).then(function (queryResult) {
age = queryResult[0].age
// here next query is dependent on first
query = "select dob from employee where age = '" + age + "'";
db.runQuery(query).then(function (queryResult) {
dateofBirth = queryResult[0].dob;
});
})
});
, где runQuery - это универсальная функция, такая как executeQuery, которая находится на другой странице
var sql = require('mssql');
var basePage = require('../pages/base_page.js');
var dbutil = function () {
this.runQuery = function (query) {
return new Promise(function (resolve, reject) {
var conn = basePage.buildAppsDbConnection();
var req = new sql.Request(conn);
conn.connect(function (err) {
if (err) {
console.log(err);
return;
}
console.log("query = " + query);
req.query(query + " for json auto;", function (err, recordset) {
if (err) {
console.log(err);
} else {
var desiredString = recordset['recordset'][0]['JSON_F52E2B61-18A1-11d1-B105-00805F49916B'];
if (desiredString.length) {
var desiredJson = JSON.parse(desiredString);
console.log(desiredJson);
resolve(desiredJson);
}
else {
desiredJson = '{"For Query":"No Rows Returned"}';
resolve(desiredJson);
}
}
conn.close();
})
});
});
}
}
module.exports = new dbutil();
Вот функция на другой страницегде мы храним конфиг
var BasePage = function () {
var sql = require('mssql');
this.buildAppsDbConnection = function () {
var dbConfig = {
server: "servernamehere",
database: "DBname",
user: "username",
password: "password",
options: {
encrypt: true // Use this if you're on Windows Azure
}
}