facebook请求的快递路线

时间:2013-03-14 18:28:26

标签: node.js routes express

我有一个请求进入我的应用程序,如下所示:

POST /?post%2F5125504547b49d91b2000001 200 53ms - 9.35kb

当未编码的时候看起来像:

POST /?post/5125504547b49d91b2000001 200 53ms - 9.35kb

我的问题是,如何用快速路线捕捉到它?

我尝试了以下内容:

app.all "/?post/:id",

app.all "/?post%2F:id",

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

路径路径定义是正则表达式,因此您需要double escape问号,这是一个特殊字符

app.all "/\\?post%2F:id"

答案 1 :(得分:1)

我建议使用中间件将网址操作回“正常”状态,以便您可以像在快递中一样路由和响应它。

也许像这样的伪代码:

  app.use(function (req, res, next) {
    if (req.originalUrl.match(/^\/(\?post)/))
      req.url = req.originalUrl = req.originalUrl.replace('%2F', '/').replace('/?','/');
    next();
  });