[英]nodejs sequelize/cli how to use with node-config
首先,這是我第一次使用 Sequelize,所以請耐心等待。
我想使用https://github.com/sequelize/cli和https://github.com/lorenwest/node-config
我希望 sequelize 能夠從多個源文件“組合”它的配置,就像 node-config 一樣。
到現在為止我已經解決了
var path = require('path')
var Config = require('config');
var env =Config.util.getEnv('NODE_ENV');
module.exports = {
'config': path.resolve('config', env + '.json')
}
{
"app": {
"name": "my api"
},
"server": {
"port": 8081
},
"development": {
"username": "username",
"password": "password",
"database": "database",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
你可以看到我必須在我的所有 env.json 文件中設置一個沒有邏輯意義的冗余 env 密鑰。
有沒有更好的辦法?
獲取數據:
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'
使用標准節點配置 json 文件。
在node-config的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"
}
}
要使用env var,請像使用node-config一樣使用custom-environment-variables.json
。
如果我正確理解了您的問題,您必須使用以下內容將.sequelizerc
文件放在項目的根目錄中:
var config = require('config');
config.database.config = __filename;
module.exports = config.database;
這將導出配置的database
部分,由node-config
配置文件組成sequelize-cli配置。
@type 回答的 config.js 中有錯誤。
node-config
不允許配置的突變(sequelize 嘗試做)解決方案是使用ALLOW_CONFIG_MUTATIONS=true
或傳播 object。// config/config.js
const config = require('config');
module.exports = {
[process.env.NODE_ENV || 'development']: {...config.get('database')},
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.