cex.io's RESTful API有一条有趣的路线,其中可变数量的参数返回给定的所有货币对。
如何在快递中实现这一目标?
这是我的意思的伪代码类型示例......
app.get('/pairs/:arg1/:arg2/:argn...', function(req, res, next) {
// app logic
});
答案 0 :(得分:4)
在Express中你可以在你的路线中使用*
之类的通配符,它也支持你可以使用的正则表达式,这里有一个如何实现这个的例子
app.get('/pairs/*', function(req, res) {
console.log(req.params[0]);
});
// GET /pairs/testing/this/route
// Output: testing/this/route
获得params
之后,您可以在/
上拆分,这将为您提供传递给路线的所有参数的数组。
有关快速路由的详细信息,请查看this page。
答案 1 :(得分:2)
作为手动拆分参数的替代方法(这可能是最佳解决方案),您还可以定义一个允许的最大参数数量的路由,每个参数都是可选的:
app.get('/pairs/:arg1?/:arg2?/:arg3?/:arg4?', ...)
(最多允许4个参数)
结果将是:
/pairs/USD
{ arg1: 'USD', arg2: undefined, arg3: undefined, arg4: undefined }
/pairs/USD/EUR
{ arg1: 'USD', arg2: 'EUR', arg3: undefined, arg4: undefined }
/pairs/USD/EUR/RUB
{ arg1: 'USD', arg2: 'EUR', arg3: 'RUB', arg4: undefined }
/pairs/USD/EUR/RUB/BTC
{ arg1: 'USD', arg2: 'EUR', arg3: 'RUB', arg4: 'BTC' }
答案 2 :(得分:0)
您可以使用Regex处理您可以访问的所有此类请求ExpressJs Documentation以获取更多详细信息
app.get('/pairs/*', function(req, res, next) {
// app logic
});