root folderファイルに.envファイルがあります
_NODE_ENV=development
NODE_Host=localhost
NODE_PORT=4000
NODE_HTTPS=false
DB_Host=localhost
DB_USERNAME=user
DB_PASSWORD=user
_
_server.js
_フォルダー内の_root/app/config/server.js
_ファイル。 _server.js
_ファイルの最初の行は
require('dotenv').config();
私もフォローしようとしました:
require('dotenv').config({path: '../.env'})
;
require('dotenv').config({path: '../../.env'})
;
ただし、コマンドプロンプトから_server.js
_ファイルを実行すると、env変数はロードされません
_node root/app/config/server.js
_
visual studioを使用してF5を押すと、ロードされます!!
何が間違っているのか、何が欠けているのかはわかりません。どんな提案も大歓迎です。ありがとう。
require('dotenv').config({path:__dirname+'/./../../.env'})
を使用してはどうですか?
問題は実行パスのようです。
上記の答えに少しニュアンスを追加する-ネストされたファイルからdotenv
を呼び出している場合、そして.env
ファイルはプロジェクトのルートにあります。ドットを接続する方法は次のとおりです。
require('dotenv').config({path:'relative/path/to/your/.env'})
これでNode _v8.14.1
_:
_const path = require('path')
require('dotenv').config({ path: path.resolve(__dirname, '../.env') })
_
単にrequire('dotenv').config({path:__dirname+'/./../../.env'})
を実行すると、_/some/path/to/env/./../../.env
_として解決される場所になりました
もう1つの優れた代替手段を次に示します。
require('dotenv').config({ path: require('find-config')('.env') })
これにより、使用する.envファイルが見つかるまで親ディレクトリが再帰されます。
あるいは、このモジュール ckey を使用することもできます。
メインディレクトリの.envファイル。
# dotenv sample content
[email protected]
PASSWORD=iampassword123
API_KEY=1234567890
サブディレクトリのjsファイル
const ck = require('ckey');
const userName = ck.USER; // [email protected]
const password = ck.PASSWORD; // iampassword123
const apiKey = ck.API_KEY; // 1234567890