我曾使用快递建立我的网站,我有一个特殊的要求。我已将路由器设置如下:
/* home */
app.get('/', function (req, res, next) {
homeRacingHandle(req,res);
});
/* racing list */
app.get('/racing',function (req, res, next) {
homeRacingHandle(req,res);
});
home page和racing list page之间只有几个不同之处。
我处理公共逻辑的方法如上所述。homeRacingHandle函数根据变量isHome
来决定要呈现的页面。
var location = req.path.split('?').toString();
var isHome = location==='/' && true || false;
这种方法适合我。但我不知道是否有一个好的处理方法。还有其他最佳实践吗?
答案 0 :(得分:2)
您可以使用currying来简化此
curryHomeRacing = require('./handler');
/* home */
app.get('/', curryHomeRacing('home'));
/* racing list */
app.get('/racing', curryHomeRacing('racing'));
在另一个文件handler.js
中//in handler.js
module.exports = function curryHomeRacing(route){
return function(req, res) {
homeRacingHandle(req, res, route);
};
}
function homeRacingHandle(req, res, route) {
if (route === 'home') {
//do home stuff
} else if (route === 'racing') {
//do racing stuff
}
}