ユーザーが認証されているかどうかを確認するために使用したいすべてのコントローラーをチェックインする代わりにapp.all('*')
、それはすでに非常にうまく機能しています。ユーザーがログインしている場合は電話をかけnext()
、ログインしていない場合は別のルートを呼び出してログイン ページを表示します。
ここまではうまくいきましたが、ミドルウェアのコールバック関数からのレンダリングが何らかの形で私のパスを台無しにしているようです。
要約すると、これは機能し、私のスタイルを表示します:
app.get('/', function (req, res) {
res.render('index', { title: 'Account Page' });
});
これは部分的には機能しますが、スタイルシートのスタイルなしで HTML を表示するだけです:
app.all('*', function (req, res) {
app.set('loggedIn', controller.security.authenticationAction(req));
if (app.get('loggedIn')) next(); // go on with '/' route
else res.render('index', { title: 'Index Page' });
});
これは、同じ HTML ページ (ただし、別のタイトル) をスタイルなしで表示します。これは app.js の私のデフォルト設定です:
app.all('*', function (req, res) { ... });
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.cookieParser('keykeykey'));
ヘルプ!