У меня есть промежуточное программное обеспечение с именем loadDataStartup.js, которое имеет функцию loadData, которая вызывает конечную точку REST для получения некоторых данных JSON.
. / Db / loadDataStartup.js
'use strict';
const db_contants = require('./db_contants');
function loadData () {
console.log("*** loadData() called");
db_contants.getEquipmentCategory()
.then(function(result_ec) {
if (typeof result_ec === "object") {
var equipmentCategoryArr = result_ec["results"];
console.log("*** equipmentCategoryArr:" + equipmentCategoryArr);
return db_contants.getLifeExpectancy();
}
else
return JSON.stringify({ "Error": String(result_ec) });
}).catch((err) => {
return JSON.stringify(err);
})
}
module.exports = {loadData};
Inмой app.js, я хочу установить загруженные данные в переменную уровня приложения с именем "dataOnStartup" с помощью app.set
.Таким образом, впоследствии переменная может быть извлечена с помощью app.get
в круге req-res.
app.js
const { loadData } = require('./db/loadDataStartup');
app.set('dataOnStartup', loadData());
app.use(function(req,res,next){
console.log("*** dataOnStartup:" + app.get('dataOnStartup'));
res.locals.session = req.session;
next();
});
Однако каждый раз, когда запрос отправлялся, консоль печатала *** dataOnStartup:undefined
.Я предполагаю, что это была асинхронная вещь, которая вызвала проблему.Но как я могу это исправить?