【发布时间】:2012-01-10 01:35:06
【问题描述】:
我正在使用 node.js + express.js +everyauth.js。我已将所有的everyauth 逻辑移到一个模块文件中
var login = require('./lib/everyauthLogin');
在其中我使用密钥/秘密组合加载我的 oAuth 配置文件:
var conf = require('./conf');
.....
twitter: {
consumerKey: 'ABC',
consumerSecret: '123'
}
这些代码对于不同的环境是不同的 - 开发/登台/生产,因为回调是不同的 url。
问题:如何在环境配置中设置这些以过滤所有模块,或者我可以将路径直接传递到模块中吗?
在环境中设置:
app.configure('development', function(){
app.set('configPath', './confLocal');
});
app.configure('production', function(){
app.set('configPath', './confProduction');
});
var conf = require(app.get('configPath'));
传入
app.configure('production', function(){
var login = require('./lib/everyauthLogin', {configPath: './confProduction'});
});
?希望这是有道理的
【问题讨论】:
-
找到了一个使用下面一些想法的解决方案,通过使用 module = function 而不是我可以评估 process.env.NODE_ENV 并返回环境的正确对象的对象。有点凌乱但有效。
-
请原谅无耻的自我推销,但我为 node.js 编写了一个模块,它将通过单独的文件和命令行开关来做到这一点:node-configure
标签: node.js environment-variables everyauth