【发布时间】:2016-05-23 17:12:21
【问题描述】:
我想在 Strongloop 应用程序中使用不同环境特定的数据源配置。我在https://docs.strongloop.com/display/public/LB/Environment-specific+configuration看到配置的优先级是:
- 环境特定配置,基于 NODE_ENV 的值; 例如,server/config.staging.json。
- 本地配置文件; 例如,server/config.local.json。
- 默认配置文件; 例如,server/config.json。
我已经声明了三个数据源配置文件: 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: User is referencing a dataSource that does not exist: "db"
我还尝试将本地 conf 添加到 staging conf 并定义变量 NODE_ENV,但它不会加载 datasource.staging.js。我通过以下方式定义了 NODE_ENV:
export NODE_ENV=staging
【问题讨论】:
-
嗯...如果您删除原本为空的
datasources.json文件怎么办? -
试过了,不行,还有什么办法?
-
您当前的环境是否可能实际上是
staging?我看到您的暂存数据源配置文件没有在定义中具有name属性。无论如何它都需要这个。 -
哦,我认为连接器应该是
mongodb。 -
不,我尝试将本地conf添加到staging conf并定义变量NODE_ENV,但它不会加载datasource.staging.js
标签: javascript json loopbackjs strongloop