如何在Express Route中捕获无限数量的参数?

时间:2018-05-24 16:55:57

标签: javascript node.js express

假设我有一条接收号码的快速路线,将它们全部加起来并返回总数。

通常我会做这样的事情

app.get('/add/:num1/:num2/:num3', (req, res) => {
   // access and parseInt these values from req.params
   // do operations
   // return total
})

但是,在这种情况下,路由可以处理的参数数量限制为3(或者我的硬编码的参数数量是多少)。如果我想处理无限期或未知数量的参数怎么办?在这种情况下,数字?

最终我希望路线能够处理2,3,5,10或20个号码(如果这是用户发送的号码)。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:6)

Express路线支持*通配符。您可以使用'*'

获取所有数字
app.get('/add/*', (req, res) => {
   const paramsArray = req.params[0].split('/');      
    // req.params[0] contains all the params separated by '/'
    // split the params using split function and it will return an array containing all parameters 

})

此数组可用于迭代参数。

例如 GET /add/1/2/4/6 的req.params [0]将返回1/2/4/6,并且在使用split函数进行拆分后,它将为[1,2,4,6]。最后可以对数组元素进行添加操作。