cex.io的RESTful API有一个有趣的路线,其中包含可变数量的参数,返回所有给定货币对。
这在快递中是如何实现的?
这是一个伪代码类型的例子,说明我的意思...
app.get('/pairs/:arg1/:arg2/:argn...', function(req, res, next) {
// app logic
});
在表达中,您可以在路由中使用*
等通配符,它还支持您可以使用的正则表达式,这是如何实现此目的的示例
app.get('/pairs/*', function(req, res) {
console.log(req.params[0]);
});
// GET /pairs/testing/this/route
// Output: testing/this/route
有了params
,您就可以拆分/
,这将为您提供传递给路由的所有参数的数组。
有关快速路由的详细信息,请查看此页面。
作为手动拆分参数的替代方法(这可能是最好的解决方案(,您还可以定义具有最大允许参数数的路由,每个参数都是可选的:
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' }
您可以使用正则表达式来处理所有此类请求,您可以访问 ExpressJs 文档以获取更多详细信息
app.get('/pairs/*', function(req, res, next) {
// app logic
});