我可以使用ExpressJS迭代查询字符串参数吗?

sca*_*cci 4 node.js express

我知道如果我传递如下的URL:

http://localhost:3000/customer?companyid=300&customerid=200
Run Code Online (Sandbox Code Playgroud)

然后我可以在ExpressJS中使用以下内容来提取数据:

res.send(util.format('You are looking for company: %s  customer: %s', req.query.companyid, req.query.customerid));
Run Code Online (Sandbox Code Playgroud)

但是,我想迭代参数并处理它们而不必在我的查询中预定义它们.我似乎无法在Express API中找到任何似乎有用的东西(可能正好看它).

http://localhost:3000/customer?companyid=300&customerid=200&type=employee
Run Code Online (Sandbox Code Playgroud)

任何意见/建议将不胜感激!

谢谢,

小号

ada*_*mse 20

在JavaScript中,您可以使用for循环查看对象的属性:

for (var propName in req.query) {
    if (req.query.hasOwnProperty(propName)) {
        console.log(propName, req.query[propName]);
    }
}
Run Code Online (Sandbox Code Playgroud)

hasOwnProperty检查是为了确保该财产的对象原型链是没有的.


num*_*407 8

req.query 只是一个对象,所以你可以像对待任何对象一样迭代它,例如

for (var param in req.query) {
   console.log(param, req.query[param]);
}
Run Code Online (Sandbox Code Playgroud)