我正在使用Express應用程序,並且想要嘗試獲取類似於reddit的路線,在那個附加.json
幾乎任何URL都會返回JSON而不是呈現的模板。如果給定路由參數返回JSON
我用玉石作爲我的渲染引擎,通過我的應用程序配置在快速設定:
app.set('view engine', 'jade');
app.set('view options', {
layout: false
});
if (app.get('env') == 'prod') {
app.enable('view cache');
}
當我想要呈現一個頁面,我用res.render
:
res.render('sometemplatefile', {
title: 'This is my template',
data: users
})
我的路線被定義爲標準,使用Passport.js中間件:
app.get('/someurl', passportConf.isAuthenticated, someController.getSomeURL);
我知道我可以只需添加一個可選路線PARAM這樣的:
app.get('/someurl(/:flag)', passportConf.isAuthenticated, someController.getSomeURL);
但隨後有if (req.params.flag === 'json') { return res.json(blah) }
每個路由控制器裏面實在是太醜了。
是否有可能繞過中間件或類似的標準動作res.render
?