app.js
Expressでは、メインファイルで次のような操作を行うことでグローバルアプリ設定を作成できると思います。
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);
...
今、./routes/login.js
にアクセスしたいのですが、次のようなものapp.settings.ssoHostname
を実行しようとすると(Express jsでapp.set()を使用して設定された変数にアクセスする方法):
...
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));
}
};
...
それは認識しませんapp
:
ReferenceError: app is not defined
私の質問は次のとおりです。
- 私が
app.set()
グローバル設定に使用したアプローチは、頻繁に再利用される「適切な」方法であり、もしそうなら... - ルートでこれらの設定にアクセスするにはどうすればよいですか?
- 頻繁に使用されるグローバル設定に使用しない場合
app.set()
、ルートでカスタム設定を設定および取得するにはどうすればよいですか?