如何在路由参数中使用斜杠

我有一个GET REST服务,需要接受参数与/

URL =“/ term /:term / amount /:amount”其中:term可以是“para / 5MG”之类的string。

有没有办法做到这一点快递? 当我的API被使用,我不喜欢用queryparams重写它。

在本地,快递试图分裂在/所以你将不得不手动分裂。 这是一个例子:

 app.get('/term/\\S+/amount/:amount', function (req, res, next){ var match; if(match = req.path.match(/^\/term\/(.*?)\/amount\/(.*)$/)){ var term = match[1]; var amount = req.params.amount; // or do whatever you like res.json({term: term, amount: amount}) }else{ res.sendStatus(404); } }) 

用这种方法你会失去很多expresse的内置魔法。 首先对参数进行URI编码可能会更好。 (像这样: term/para%2F5MG/amount/3

 app.get('/term/:term/amount/:amount', function(req, res) { // your code here })