javascript - 如何在 Express Route 中捕获不定数量的参数?

标签 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(或者我硬编码的 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/

相关文章:

javascript - Javascript:由用户输入分配变量时崩溃

javascript - 在 Mongoose 查询中使用变量作为属性名称未返回正确结果

javascript - 使用 angular-chart.js 在条形图中手动设置 y 轴刻度

node.js - 如何防止每条新推文触发 Twitter 流中的回调?

node.js - Nodejs是否支持运行时依赖?

node.js - Mongoose 中的方法和统计有什么区别?

javascript - 如何处理编码的base64音频并重新发送到谷歌?

javascript - 在按钮或 div 外部单击时隐藏按钮

javascript - Express 和 AngularJS 路由

node.js - Express.js 中间件集成测试