Espresso: accesso alle impostazioni di app.set () nei percorsi

In Express, sono portato a credere che le impostazioni globali delle app possano essere create facendo qualcosa di simile al seguente nel mio file app.js principale:

 var express = require('express'), ... login = require('./routes/login'); var app = express(); app.configure(function(){ ... app.set('ssoHostname', 'login.hostname.com'); ... }); ... app.get('/login', login.login); ... 

ora in ./routes/login.js , vorrei accedere ad app.settings.ssoHostname , ma se provo a eseguire qualcosa di simile a (come per: Come accedere alle variabili impostate usando app.set () in express js ) :

 ... exports.login = function(req, res) { var currentURL = 'http://' + req.header('host') + req.url; if (!req.cookies.authCookie || !User.isValidKey(req.cookies.authCookie)) { res.redirect(app.settings.ssoHostname + '/Login?returnURL=' + encodeURIComponent(currentURL)); } }; ... 

non riconosce l’ app :

 ReferenceError: app is not defined 

Le mie domande sono:

  1. L’approccio che ho usato per usare app.set() per le impostazioni globali che verranno riutilizzate spesso è il modo “corretto” per farlo e in tal caso …
  2. Come posso accedere a queste impostazioni nei percorsi?
  3. Se non si utilizza app.set() per le impostazioni globali da utilizzare spesso, come impostare e ottenere le impostazioni personalizzate nei percorsi?

Alla fine del tuo file app.js :

 module.exports = app; 

E poi in routes/login.js :

 var app = require('../app'); 

Ora hai accesso all’object app reale e non otterrai un ReferenceError .

Usa req.app.get('ssoHostname')