[英]How to loop arrays with node.js request()
我從傳遞單個值到我的節點API到傳遞多個值,API停止發送響應。
字段的單個值示例:
tracking: "123", // Only one tracking number
carrier: "usps" // Only one carrier code
字段的多個值的示例:
tracking: [ '9361289691090998780363', '784644233417' ],
carrier: [ 'usps', 'fedex' ]
我想我需要添加某種循環,但是我無法弄清楚該怎么做,也不知道查找該詞的正確術語。 這與aync有關嗎? 我迷路了。
request(options, function (error, response, body){});
這是我的代碼。 任何幫助/補充信息都會對我理解我做錯了什么感激不盡。
html.js
// These are sent over in an AJAX call //
var trackingNumber = ['9361289691090998780363', '784644233417'];
var carrierCode = ['usps', 'fedex'];
controller.js
app.get("/api/tracking/retrieve", (req, res) => {
var carrier = req.query.carrier;
var tracking = req.query.tracking;
console.log('carrier array', carrier);
console.log('tracking array', tracking);
var options = {
method: "GET",
url: 'https://api.example.com/v1/tracking',
qs: { carrier_code: carrier, tracking_number: tracking },
headers:
{
'api-key': process.env.SECRET_KEY_SE,
'accept': 'application/json'
}
}
console.log("Url: ", req.url);
console.log("Query: ", req.query);
// res.send("ok");
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log('BODY', body)
var trackingData = JSON.parse(body)
console.log('trackingData: ', trackingData);
table = 'tracking_table';
col = [
'user_id',
'tracking_number',
'carrier_code',
];
val = [
user_id,
trackingData.tracking_number,
options.qs.carrier_code,
];
main.create(table, col, val, function (data) {
res.json({
id: data.insertId,
user_id: user_id,
tracking_number: data.tracking_number,
carrier_code: data.carrier_code,
});
})
}
})
})
從您的控制器上,我實際上可以看到,一旦收到請求,您就將響應發送回去。 你怎么能再次發送回復?
我已經評論了你的res.send('ok')並且它有效。
app.get("/api/tracking/retrieve", (req, res) => {
var carrier = req.query.carrier;
var tracking = req.query.tracking;
console.log('carrier array', carrier);
console.log('tracking array', tracking);
var options = {
method: "GET",
url: 'https://api.example.com/v1/tracking',
qs: { carrier_code: carrier, tracking_number: tracking },
headers:
{
'api-key': process.env.SECRET_KEY_SE,
'accept': 'application/json'
}
}
console.log("Url: ", req.url);
console.log("Query: ", req.query);
// res.send("ok"); <--
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log('BODY', body)
var trackingData = JSON.parse(body)
console.log('trackingData: ', trackingData);
table = 'tracking_table';
col = [
'user_id',
'tracking_number',
'carrier_code',
];
val = [
user_id,
trackingData.tracking_number,
options.qs.carrier_code,
];
main.create(table, col, val, function (data) {
res.json({
id: data.insertId,
user_id: user_id,
tracking_number: data.tracking_number,
carrier_code: data.carrier_code,
});
})
}
})
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.