快速路由GET与搜索参数

时间:2014-01-29 17:15:13

标签: node.js rest express restful-url

我有两条获取商店的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);

1 个答案:

答案 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)
相关问题