【问题标题】:Populating navigation bar data from DB从数据库填充导航栏数据
【发布时间】:2016-10-07 07:45:48
【问题描述】:

我有一个 Sails 应用程序,我想从 DB 填充导航栏下拉菜单数据。

我正在使用策略调用服务并填充sails.config.views.locals.HeaderData 变量

但是由于sails的一些异步特性,只有当控制器发送响应而不是请求到达策略时才会调用服务。这给了我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();

}

【问题讨论】:

    标签: node.js sails.js sails-postgresql


    【解决方案1】:

    next()MenuItems.getMenuItems 可能完成之前被调用。所以在回调中移动next() 语句:

    MenuItems.getMenuItems('items', function (err, response) {
        if (err) {
            sails.log.debug(err);
        }else{
            sails.config.views.locals.HeaderData = response[0].dataValues;
        }
        next();
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 2023-03-23
      • 2010-09-26
      • 2012-06-25
      • 2011-07-01
      相关资源
      最近更新 更多