快递路线的Facebook请求

我有一个请求进入我的应用程序,看起来像这样:

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

其中,未编码时,看起来像:

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

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

我已经尝试了以下内容:

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

有任何想法吗?

我会build议使用中间件来操纵url回到“正常”的东西,这样你就可以按照你的expression路由和回应。

也许像这样的伪代码:

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

pathpath定义是一个正则expression式,所以你需要双重转义问号,这是一个特殊的字符

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