假设我有一条接收号码的快速路线,将它们全部加起来并返回总数。
通常我会做这样的事情
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个号码(如果这是用户发送的号码)。
我怎样才能做到这一点?
答案 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]
。最后可以对数组元素进行添加操作。