我有两种不同的环境开发和生产
production.js
var config = {
production: {
session: {
key: 'the.express.session.id',
secret: 'something.super.secret'
},
database: 'mongodb://localhost:27018/test',
twitter: {
consumerKey: 'consumer Key',
consumerSecret: 'consumer Secret',
callbackURL: 'http://yoururl.com/auth/twitter/callback'
}
},
}
development.js
var config = {
development: {
session: {
key: 'the.express.session.id',
secret: 'something.super.secret'
},
database: 'mongodb://localhost:27018/testdata',
twitter: {
consumerKey: 'consumer Key',
consumerSecret: 'consumer Secret',
callbackURL: 'http://yoururl.com/auth/twitter/callback'
}
},
}
我已将这些文件存储在环境文件夹下,现在我想在server.js中调用这两个文件
server.js
var config = require('./environment');
console.log(config);
mongoose.connect(config.database);
mongoose.connection.on('error', function (err) {
console.error('MongoDB connection error: ' + err);
process.exit(-1);
});
如何在server.js中调用这些文件。如果我在命令提示符下运行set NODE_ENV=production
这些应该运行production
数据库,如果我在命令提示符set NODE_ENV=development
中运行development
数据库应该运行。帮助我
答案 0 :(得分:0)
当require被赋予文件夹的路径时,它将在该文件夹中查找index.js文件;如果有,则使用它,如果没有,则失败。
最有意义的是(如果你可以控制文件夹)创建一个index.js文件,然后测试process.env:
if (process.env.NODE_ENV === 'production') {
require('production.js');
} else {
require('development.js');
}
node.js require all files in a folder?
https://www.twilio.com/blog/2017/08/working-with-environment-variables-in-node-js.html