假设我有一条快速路线,它接受数字,将它们全部相加并返回总数。
通常我会做这样的事情
app.get('/add/:num1/:num2/:num3', (req, res) => {
// access and parseInt these values from req.params
// do operations
// return total
})
然而,在这种情况下,路由可以处理的参数数量限制为 3(或者我硬编码的 url 参数的数量)。如果我想处理不确定或未知数量的参数怎么办?在这种情况下,数字?
最终,我希望路由能够处理 2、3、5、10 或 20 个数字(如果这是用户发送的数字)。
我怎样才能做到这一点?
最佳答案
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]
。最后可以对数组元素进行add操作。
关于javascript - 如何在 Express Route 中捕获不定数量的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514532/