Впервые до NodeJs. У меня проблема с синхронизацией выполнения метода. Вот что я имею в виду, у меня есть контроллер, который отвечает за: Вызов метода (в отдельном файле JS), чтобы открыть соединение с базой данных и получить данные. б. Затем он отправляет данные в интерфейс. Из моих усилий по отладке может показаться, что я отправляю данные до того, как метод, который открывает соединение и получает данные, завершается. Я знаю это, потому что, когда выполняется последняя строка salesController. js, она выдает ошибку «Не удается прочитать свойство« наборы записей »из неопределенного». В следующем фрагменте кода dbAccess. js имеет метод, который открывает базу данных и получает данные. salesController. js затем отправляет эти данные. Нужна помощь с выделенной частью в salesController. js. Обратите внимание, если это помогает, я использую sql сервер в качестве бэкэнда.
dbAccess. js
const dbConfig = require('../../nodeApp/dbConfig')
module.exports = {
makeDBAccess: function(sqlString, req, res) {
var sql = require("mssql/msnodesqlv8");
// connect to your database
sql.connect(dbConfig, function (err) {
if (err) console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query(sqlString, function (err, recordset) {
if (err) console.log(err)
console.log(recordset.recordsets[0]);
console.log(recordset.recordsets[0].length)
return recordset;
});
});
}
}
salesController. js
const express = require('express');
var router = express.Router();
var dbAccess = require('../utility/dbAccess.js')
var utility = require('../utility/readfile.js')
router.get('/totalSales2011', function (req, res) {
var sqlString = utility.readFileFunc("queries/sales2011.sql");
var recordSet = dbAccess.makeDBAccess(sqlString,req,res); **//Get data from database**
res.send(recordSet.recordsets[0]); **//Wait for line above to complete before doing this.**
});
module.exports = router;