Javascript NodeJS-process.env.NODE_env条件在使用package.json脚本时不起作用
我为测试、开发和生产设置了3个不同的数据库 现在,我想让我的express应用程序根据我运行的脚本在这些数据库之间切换Javascript NodeJS-process.env.NODE_env条件在使用package.json脚本时不起作用,javascript,node.js,Javascript,Node.js,我为测试、开发和生产设置了3个不同的数据库 现在,我想让我的express应用程序根据我运行的脚本在这些数据库之间切换 These are my current scripts: "scripts": { "start": "NODE_ENV=dev && node index.js", "test": "mocha --timeout 10000" } 我在测试脚本顶部分配process.env.NODE_env值,如下所示,测试脚本在正确的DB上运行良
These are my current scripts:
"scripts": {
"start": "NODE_ENV=dev && node index.js",
"test": "mocha --timeout 10000"
}
我在测试脚本顶部分配process.env.NODE_env值,如下所示,测试脚本在正确的DB上运行良好:
process.env.NODE_ENV = 'test';
但当我运行npmstart
时,node似乎没有获得该值。例如,关于此代码:
//数据库连接
let db;
if (process.env.NODE_ENV == 'test') {
mongoose.connect(config.DB.test, options);
db = mongoose.connection;
} else if (process.env.NODE_ENV == 'dev') {
mongoose.connect(config.DB.dev, options);
db = mongoose.connection;
app.use(morgan('combined'));
} else if (process.env.NODE_ENV == 'prod') {
mongoose.connect(config.DB.prod, options);
db = mongoose.connection;
app.use(morgan('combined'));
}
db.on('error', console.error.bind(console, 'connection error:'));
我得到未定义的错误的无法读取属性'on'(在运行相同的代码时,测试脚本连接到正确的数据库)
我做错了什么?试着用这个来代替:
"start": "NODE_ENV=dev node index.js",
删除&
我想添加一种处理env not set的方法:
var env = process.env.NODE_ENV || 'dev'
然后将每个引用的process.env.NODE\u env
更改为env