1
我的问题涉及到an old answer given on this question,但只做了很小的修改。使用app.get('env')设置特定于环境的配置
我会尽量保持简单。
想我的文件夹结构如下
|-- controllers
|-- File.js
|-- and many more...
|-- routes.js
|-- app.js
|-- config.js
|-- env.json (same as one in the old answer)
相关文件包含
app.js
const routes = require('./routes');
app.set('env', process.env.NODE_ENV || 'production'); // set the environment
app.use('/', routes);
routes.js
const FileController = require('./controllers/File');
let router = require('express').Router();
router.get('/files', FileController.getFiles);
// ...
module.exports = router;
控制器/ File.js
const config = require('../config');
exports.getFiles = (req, res, next) => {
// I would like to use the environment-specific (that was set in app.js) config here
console.log(config.facebook_app_id);
};
// ...
config.js
const env = require('env.json');
/*exports.config = function() {
var node_env = process.env.NODE_ENV || 'development';
return env[node_env];
};*/
module.exports = env[app.get('env')]; // this would cause an error as app is not defined
这可能是一个愚蠢的问题,但我怎么可以使用应用程序内config.js
即app.get('env')
设置?
我正要为默认的开发也发表评论,而不是督促;-) –
所以基本上不会在配置文件中使用的应用程序设置。我的最终目标是让我有一个地方可以做'process.env.NODE_ENV || “production''。尽管根据[documentation](http://expressjs.com/en/api.html#app.set),app.set()的默认值是'process.env.NODE_ENV || “development''。由于使用'development'更好,我猜它可行。谢谢。 – Mikey