[英]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.