我有两条获取商店的GET路线,但是,一条路线用于获取所有商店,另一条路线用于获取附近的商店。
1)获取所有商店的网址请求如下:
http://mydomain/stores
2)获取附近所有商店的网址:
http://mydomain/stores?lat={lat}&lng={lng}&radius={radius}
问题是:
如何在Express中正确映射这些网址,以便将每条路线重定向到相应的方法?
app.get('/stores', store.getAll);
app.get('/stores', store.getNear);
答案 0 :(得分:12)
app.get('/stores', function(req, res, next){
if(req.query['lat'] && req.query['lng'] && req.query['radius']){
store.getNear(req, res, next);
} else {
store.getAll(req, res, next)
};
});
编辑 - 第二种方式:
store.getNear = function(req, res, next){
if(req.query['lat'] && req.query['lng'] && req.query['radius']){
// do whatever it is you usually do in getNear
} else { // proceed to the next matching routing function
next()
};
}
store.getAll = function(req, res, next){
// do whatever you usually do in getAll
}
app.get('/stores', store.getNear, store.getAll)
// equivalent:
// app.get('/stores', store.getNear)
// app.get('/stores', store.getAll)