gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:41:03 26 4
gpt4 key购买 nike

我想在 Strongloop 应用程序中使用不同环境特定的数据源配置。我在 https://docs.strongloop.com/display/public/LB/Environment-specific+configuration 看到配置的优先级是:

  1. 特定于环境的配置,基于 NODE_ENV 的值;例如,服务器/config.staging.json。
  2. 本地配置文件;例如,服务器/config.local.json。
  3. 默认配置文件;例如,server/config.json。

我已经声明了三个数据源配置文件:数据源.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: User is referenced a dataSource that does not exist: "db"

我还尝试将本地 conf 添加到暂存 conf 并定义变量 NODE_ENV,但它不会加载 datasource.staging.js。我通过以下方式定义了 NODE_ENV:

export NODE_ENV=staging

最佳答案

我用了node-debug追查问题。它来自这个特定的源 strongloop 文件:

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);
}
}
}

如果 "db" 键没有在主文件中定义,即 datasources.json,则不会合并配置。

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

{
"db": {}
}

成功了!

也许这是我的错,但文档不够清楚。

关于javascript - Strongloop 应用程序不加载本地数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35364536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com