cec*_*ode 5 mysql json environment-variables node.js sequelize.js
我正在使用sequelize在我的项目的config.json文件中使用一个环境变量。我正在使用dotenv在本地设置环境变量。我的config.json文件看起来像这样
{
"development": {
"username": process.env.DB_USER,
"password": process.env.DB_PASS,
"database": process.env.DB_DATABASE,
"host": process.env.DB_HOST,
"dialect": "mysql"
},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"use_env_variable": "JAWSDB_URL",
"dialect": "mysql"
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我无法在config.json文件中使用变量。在生产环境中,我可以使用“ use_env_varable”键,并在连接字符串中使用env变量。所以我想我要么需要一种方法来找出本地mysql数据库的组合连接字符串,要么需要一种使用config.json内部变量的方法。有什么办法吗?
Ali*_*fat 10
你应该改变config.json
文件的config.js
模块,并确保require
了dotenv
在最高层。
require('dotenv').config(); // this is important!
module.exports = {
"development": {
"username": process.env.DB_USERNAME,
"password": process.env.DB_PASSWORD,
"database": process.env.DB_DATABASE,
"host": process.env.DB_HOST,
"dialect": "mysql"
},
"test": {
"username": "root",
"password": null,
"database": "database_test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"username": "root",
"password": null,
"database": "database_production",
"host": "127.0.0.1",
"dialect": "mysql"
}
};
Run Code Online (Sandbox Code Playgroud)
注意:更新您的.sequelizerc
文件以匹配新的配置文件。
"config": path.resolve('./config', 'config.js'),
Run Code Online (Sandbox Code Playgroud)