如何在路由参数中使用斜杠
我有一个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 })