Ekspresowe dostępu app.set(), ja skłonni uwierzyć, że globalne ustawienia aplikacji mogą być tworzone przez robi coś podobnego do następującego w moim głównym app.js
pliku:ekspresowe: Ustawienia w trasach
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);
...
teraz w ./routes/login.js
, chciałbym, aby uzyskać dostęp app.settings.ssoHostname
, ale jeśli próbuję uruchomić coś podobnego do (zgodnie z: How to access variables set using 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));
}
};
...
nie rozpoznaje app
:
ReferenceError: app is not defined
Moje pytania są następujące:
- Czy podejście Wziąłem korzystania
app.set()
dla ustawień globalnych, które będą ponownie wykorzystywane często „właściwego” sposób to zrobić, a jeśli tak ... - Jak uzyskać dostęp do tych ustawień na trasach?
- Jeśli nie używasz
app.set()
, aby często używane były ustawienia globalne, w jaki sposób ustawiłbym i uzyskałam własne ustawienia na trasach?
Można użyć req.app.settings.ssHostName –
req.app.settings jest wielki krzyk .. po prostu to, czego szukasz. Dzięki @Hector Correa – iancrowther