J'utilise node.js + express.js + everyauth.js. J'ai déplacé toute ma logique everyauth dans un fichier module
var login = require('./lib/everyauthLogin');
à l'intérieur, je charge mon fichier de configuration oAuth avec les combinaisons clé/secret :
var conf = require('./conf');
.....
twitter: {
consumerKey: 'ABC',
consumerSecret: '123'
}
Ces codes sont différents pour les différents environnements - développement / staging / production, car les rappels se font vers des urls différentes.
Question : Comment les définir dans la configuration de l'environnement pour qu'ils soient filtrés par tous les modules ou puis-je passer le chemin d'accès directement dans le module ?
Fixé dans l'environnement :
app.configure('development', function(){
app.set('configPath', './confLocal');
});
app.configure('production', function(){
app.set('configPath', './confProduction');
});
var conf = require(app.get('configPath'));
Entrer
app.configure('production', function(){
var login = require('./lib/everyauthLogin', {configPath: './confProduction'});
});
? j'espère que cela a du sens
0 votes
J'ai trouvé une solution qui utilise certaines des idées ci-dessous, en ayant le module = fonction plutôt qu'un objet, je peux évaluer process.env.NODE_ENV et retourner l'objet correct pour l'environnement. C'est un peu compliqué mais ça marche.
0 votes
Pardonnez l'autopromotion éhontée, mais j'ai écrit un module pour node.js qui fera cela via des fichiers séparés et un commutateur de ligne de commande : configuration du nœud