[英]Extract query in node.js
给定该网址/calculatePrice?id[0]=123&qty[0]=2&id[1]=456&qty[1]=3
。 我建立这个提取查询:
app.use('/calculatePrice', (req,res) => {
var query = {};
query.id = [];
query.qty = [];
if(req.query.id[i]) query.id.push(req.query.id[i]);
if(req.query.qty[i]) query.qty.push(req.query.qty[i]);
console.log(query);
}
但这不起作用。 我该如何提取这些查询呢?
使用Express.js,您可以直接在req.query
访问查询参数。
app.use('/calculatePrice', (req,res) => {
const params = req.query;
const id = params.id || [];
const qty = params.qty || [];
console.log(id);
console.log(qty);
...
}
ES6使用解构方式:
app.use('/calculatePrice', (req,res) => {
const { id, qty } = req.query;
console.log(id);
console.log(qty);
...
}
*编辑:我刚刚检查了Express.js v.4,并且如果要设置参数在数组中的位置,则可以通过设置数组中的索引来传递数组元素:
/calculatePrice?id[1]=123&qty[1]=2&id[0]=456&qty[0]=3
req.query = {
id: [456, 123],
qty: [3, 1],
}
或者,如果您想按发送的相同顺序保存它们,如下所示:
/calculatePrice?id[]=123&qty[]=2&id[]=456&qty[]=3
req.query = {
id: [123, 456],
qty: [1, 3],
}
要么
/calculatePrice?id=123&qty=2&id=456&qty=3
req.query = {
id: [123, 456],
qty: [1, 3],
}
我自己已经弄清楚了。 我可以实际使用:
app.use('/calculatePrice', (req,res) => {
var query = {};
if(req.query.id) query.id = req.query.id;
if(req.query.qty) query.qty = req.query.qty;
console.log(query);
});
这将返回{ id: [123,456] , qty: [2,1] }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.