【发布时间】:2018-05-11 06:40:40
【问题描述】:
我有两个 dotenv 文件,一个用于开发,另一个用于测试。
const dotenv = require('dotenv');
if (process.env && process.env.NODE_ENV) {
dotenv.config({path: '.env.' + process.env.NODE_ENV});
} else {
dotenv.config({path: '.env.development'});
}
const http = require('http');
const app = require('../src/app');
const port = parseInt(process.env.PORT, 10) || 8000;
app.set('port', port);
const server = http.createServer(app);
server.listen(port);
这是我的问题:
在我的情况下,服务器何时加载 dotenv 文件?如果我在test env 中运行,为什么这些 process.env 变量会出现未定义?
在我看来,这个文件只运行一次,当我更改 NODE_ENV 时,它不会更改要加载的文件。
简而言之:
我的开发 dotenv 正在运行,但是在将其更改为 test dotenv 时遇到了问题
【问题讨论】:
-
应该可以。也许这就是您运行设置的方式。也许确保您在测试模式下运行时获得
console.log('.env.' + process.env.NODE_ENV)的正确路径?
标签: node.js express environment-variables