而不是檢查每個控制器中我想使用app.all('*')
來檢查用戶是否已通過身份驗證,並且它已經很好地工作。如果用戶登錄,我只需撥打next()
,如果他不是,我打電話給其他路線顯示登錄頁面。使用明文從node.js中的中間件呈現玉模板
到目前爲止好,但似乎從中間件回調函數呈現某種方式弄亂我的路徑,例如樣式表不起作用,當我在頁面源中單擊它時,我再次登陸索引頁。
概括起來,這個工程並顯示我的風格:
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'));
幫助!
謝謝兄弟!我對錶達還很陌生,因爲那個表達骨架的構建器生成了所有這些東西,所以我沒有時間特別檢查每一行。 – codepushr