Sails アプリケーションがあり、DB からナビゲーション バーのドロップダウン メニュー データを入力したいと考えています。
ポリシーを使用してサービスを呼び出し、sails.config.views.locals.HeaderData 変数を設定しています
しかし、帆のいくつかの非同期機能のために、リクエストがポリシーに届いたときではなく、コントローラーが応答を送信したときにのみサービスが呼び出されます。これにより、ejs で空の配列が得られます
ポリシー
module.exports = function (req, res, next) {
try {
if (sails.config.views.locals.HeaderData == 'undefined' || sails.config.views.locals.HeaderData == 'is not defined' || sails.config.views.locals.HeaderData == undefined) {
sails.config.views.locals.HeaderData = [];
}
if (_.isEmpty(sails.config.views.locals.HeaderData)) {
MenuItems.getMenuItems('items', function (err, response) {
if (err) {
sails.log.debug(err);
}
else {
sails.config.views.locals.HeaderData = response[0].dataValues;
}
})
}
}
catch (e) {
console.log("errrrrr", e);
}
next();
}