使用查询字符串表达js路由

时间:2015-08-12 11:30:38

标签: node.js express

我想做这样的事情。如果存在或不存在某个查询字符串,我想使用不同的中间件。

REGEXP_SUBSTR(data || '_' || data, '[0-9]+', 1, 2)

然而,我失败了。谁能帮我?谢谢。 编辑:我只需要添加中间件,我不在乎查询字符串的值是什么

2 个答案:

答案 0 :(得分:3)

如果您打算运行相同的路由处理程序并根据查询字符串是否匹配来调用中间件,则可以使用某种包装中间件:

s.get('url', auth=('user', 'login')).text

如果你想拥有两个路由处理程序,你可以使用它:

var skipIfQuery = function(middleware) {
  return function(req, res, next) {
    if (req.query.aaa) return next();
    return middleware(req, res, next);
  };
};

app.get("/test", skipIfQuery(middleware), function (req, res) {
  res.send(...);
});

(这些显然不是非常通用的解决方案,但它只是为了解决如何解决这个问题)

答案 1 :(得分:2)

你可以这样做:

app.get("/test", middleware, function (req, res) {
    res.send("no query string");
});


middleware = function(req, res, next) {
    if(!req.query.yourQuery) return next();

    //middleware logic when query present
}