首先,这是我第一次使用 Sequelize,所以请耐心等待。
我想使用 https://github.com/sequelize/cli 连同 https://github.com/lorenwest/node-config
我希望 sequelize 能够从多个源文件“组合”它的配置,就像 node-config 所做的那样。
现在我已经解决了
.sequelizerc
var path = require('path')
var Config = require('config');
var env =Config.util.getEnv('NODE_ENV');
module.exports = {
'config': path.resolve('config', env + '.json')
}
development.json即
{
"app": {
"name": "my api"
},
"server": {
"port": 8081
},
"development": {
"username": "username",
"password": "password",
"database": "database",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
你可以看到我必须设置一个冗余的环境 key 没有逻辑意义 在我所有的 env.json 文件中。
有没有更好的办法?
缺点
获取数据:
var env =Config.util.getEnv('NODE_ENV');
var configDb = Config.get(env);
这样所有的选项 文件加载顺序丢失。
https://github.com/lorenwest/node-config/wiki/Configuration-Files
其他方式
sequelize db:migrate --url 'mysql://root:password@mysql_host.com/database_name'
使用标准的 Node 配置 json 文件。
最佳答案
在 Node 配置的 config
文件夹中,创建一个名为 config.js
的文件>
// config/config.js
const config = require('config');
module.exports = {
[process.env.NODE_ENV || 'development']: config.database
};
然后在项目的顶层创建一个.sequelizerc
。
// .sequelizerc
const path = require('path');
module.exports = {
config: path.resolve('config', 'config.js')
};
示例 config/development.json
{
"database": {
"username": "root",
"password": "",
"database": "my_database",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
要使用环境变量,请像通常使用 node-config 一样使用 custom-environment-variables.json
。
关于node.js - nodejs sequelize/cli 如何与 Node 配置一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31500028/