我有一个sequelize配置文件,用于连接DB:
config/database.js
const config = require('./config');
module.exports = {
development: {
username: config.CONFIG.db_user,
password: config.CONFIG.db_password,
database: config.CONFIG.db_name,
host: config.CONFIG.db_host,
dialect: config.CONFIG.db_dialect,
port: config.CONFIG.db_port
},
test: {
username: 'test',
password: 'test',
database: 'db_test',
host: 'localhost',
dialect: 'mysql'
},
production: {
username: config.CONFIG.db_user,
password: config.CONFIG.db_password,
database: config.CONFIG.db_name,
host: config.CONFIG.db_host,
dialect: config.CONFIG.db_dialect
}
};
在sequelize model index.js文件中,我想通过向上一个文件传递env
变量来设置我需要的环境:
models/index.js
const env = process.env.NODE_ENV || 'development';
const dbConfig = require('../config/database');
const sequelize = new Sequelize(
dbConfig.test.database,
dbConfig.test.username,
dbConfig.test.password, {
host: dbConfig.test.host,
dialect: dbConfig.test.dialect,
port: dbConfig.test.port
});
现在我手动完成,有没有一种方法可以通过编程完成?谢谢你的帮助!
是的,你可以这样做:
module.exports = function () {
let development = {
username: 'test',
password: 'test',
database: 'db_test',
host: 'localhost',
dialect: 'mysql'};
let production = {
username: 'test',
password: 'test',
database: 'db_test',
host: 'localhost',
dialect: 'mysql'
};
switch (process.env.NODE_ENV) {
case 'development':
return development;
case 'production':
return production;
default:
return development;
}
};
您可以访问代码中的任何位置的环境变量,如下所示:
process.env.var_name