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

jsd*_*v17 1 javascript node.js express

假设我有一条快速路线接受数字,将它们全部加起来并返回总数.

通常我会做这样的事情

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

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

最终,我希望路由能够处理2,3,5,10或20个数字(如果这是用户发送的数字).

我怎样才能做到这一点?

Yam*_*bra 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 

})
Run Code Online (Sandbox Code Playgroud)

该数组可用于迭代params.

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