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:
app.set()
per le impostazioni globali che verranno riutilizzate spesso è il modo “corretto” per farlo e in tal caso … 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')