javascript – Strongloop应用程序不加载本地数据源

前端之家收集整理的这篇文章主要介绍了javascript – Strongloop应用程序不加载本地数据源前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在Strongloop应用程序中使用不同的环境特定的数据源配置.我在 @L_301_0@看到配置的优先级是:

>环境特定的配置,基于NODE_ENV的值;
例如server / config.staging.json.
>本地配置文件;
例如server / config.local.json.
>默认配置文件;
例如server / config.json.

我已经声明了三个数据源conf文件
datasources.json:

{}

datasources.local.json:

{
  "db": {
    "name": "db","connector": "loopback-connector-mongodb","host":"127.0.0.1","port": "27017","database": "woowDev"
  }
}

和datasources.staging.js:

module.exports = {
  db: {
    connector: 'mongodb',hostname: process.env.OPENSHIFT_MONGODB_DB_HOST,port: process.env.OPENSHIFT_MONGODB_DB_PORT,user: process.env.OPENSHIFT_MONGODB_DB_USERNAME,password: process.env.OPENSHIFT_MONGODB_DB_PASSWORD,database: 'woow'
  }
};

现在除非我将datasources.local.json的配置放在datasources.json中,否则它不起作用.我不断收到错误:AssertionError:用户正在引用一个不存在的数据源:“db”

我也尝试将本地conf添加到staging conf并定义变量NODE_ENV,但它不会加载datasource.staging.js.我通过这样做来定义NODE_ENV:

export NODE_ENV=staging

解决方法@H_403_30@
我用 node-debug跟踪这个问题.它来自这个特别的源强力文件
node_modules/loopback-boot/lib/config-loader.js

功能

function mergeDataSourceConfig(target,config,fileName) {
  for (var ds in target) {
    var err = applyCustomConfig(target[ds],config[ds]);
    if (err) {
      throw new Error('Cannot apply ' + fileName + ' to `'  + ds + '`: ' + err);
    }
  }
}

如果在主文件,即datasources.json中未定义“db”键,则不会合并配置.

所以,我刚刚将datasources.json修改为:

{
  "db": {}
}

它工作!

也许这是我的错,但文件不够清楚.

原文链接:https://www.f2er.com/js/152191.html

猜你在找的JavaScript相关文章