使用环境变量进行本地序列化配置

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模块,并确保requiredotenv在最高层。

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)