簡體   English   中英

在node.js中提取查詢

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM