2016-08-04 13 views
1

用的環境変数を使用しました。私は環境変数をローカルに設定するためにdotenvを使用しています。私のconfig.jsonファイルは次のようになります私はsequelizeを使用して私のプロジェクトのconfig.jsonファイルの内部で環境変数を使用しているよ地元sequelize構成

{ 
    "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" 
    } 
} 

問題は、config.jsonファイル内で変数を使用できないことです。私は "use_env_varable"キーを使用して、接続文字列にenv変数を使用することができます。だから私は、ローカルのmysql dbのための結合された接続文字列か、config.jsonの中で変数を使う方法を理解する方法が必要かと思います。どんな解決策ですか?

答えて

1

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" 
} 
}; 

注:.sequelizercファイルを新しい設定ファイルと一致するように更新します。

"config": path.resolve('./config', 'config.js'), 
0

開発にはuse_env_variableも使用できます。あなたはすでにdotenvを使用しているようですので、すでに.envファイルが設定されていると仮定しています。ちょうどそれに次の行を追加します

LOCALDB = mysqlの:// [ユーザー]:[パス] @ [sqldomain]/[DB名]

[]、必要に応じて中のものを交換し、あなたの設定でファイルを "use_env_variable"をLOCALDBに設定します。これはJAWSDBの運用方法と同じです。

関連する問題