cex.io's RESTful API有一個有趣的路線,可變數量的參數返回給定的所有貨幣對。快遞中可變數量的路線參數?
這是如何實現的?
這裏是我的意思一個僞型例子...
app.get('/pairs/:arg1/:arg2/:argn...', function(req, res, next) {
// app logic
});
cex.io's RESTful API有一個有趣的路線,可變數量的參數返回給定的所有貨幣對。快遞中可變數量的路線參數?
這是如何實現的?
這裏是我的意思一個僞型例子...
app.get('/pairs/:arg1/:arg2/:argn...', function(req, res, next) {
// app logic
});
在表達,你可以使用通配符就像在你的路線*
,它也支持正則表達式,你可以使用,這裏是一個例子一旦你的params
,那麼你可以在/
分裂,這將給你傳遞給路由的所有參數的數組,你如何能做到這一點
app.get('/pairs/*', function(req, res) {
console.log(req.params[0]);
});
// GET /pairs/testing/this/route
// Output: testing/this/route
。
有關快速路由的更多信息,請參閱this page。
您可以使用正則表達式來處理,您可以訪問ExpressJs Documentation瞭解更多詳情
app.get('/pairs/*', function(req, res, next) {
// app logic
});
作爲替代手動分裂參數(這可能是最好的解決方案),所有的要求,你也可以定義路由用的參數的最大允許數量,每一個是可選的:
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' }
我已經知道如何做到這一點,但不知道如何編寫此爲*的參數 –
任何*號的@MathieuBertin我認爲這將需要手動分裂網址爲單獨的參數, – robertklep