我的代码又出现了另一个错误。我正在尝试从两个不同的列表中获取Trello API的卡的一些详细信息。我的第一个列表运行正常,但是由于某种原因,每当我运行程序时,第二个列表都会给我一个“套接字挂断”错误。
我已经在线阅读了有关此内容的信息,常见的答案似乎是该人可能缺少req.end()
,但就我而言,我的代码中已经包含了它,事实证明第一次请求就可以了。
代码如下:
const req0 = http.request({
hostname: `api.trello.com`,
port: 443,
path: `/1/lists/5cb77e9ef180dd2bbb25acf2/cards?key=${trelloKey}&token=${trelloToken}&fields=name`,
method: `GET`
}, res => {
let str = '';
res.on('data', chunk => {
str += chunk;
});
res.on('end', () => {
try {
var level0Data = JSON.parse(str);
console.log(`Level 0: ${level0Data}`)
level0Data.forEach((k,v) => {
var id = k.id;
var name = k.name;
console.log(`${id} = ${name}`);
});
level0Data.forEach(function(level0Names) {
// code here
});
} catch(error) {
console.log(error);
}
});
});
req0.on('error', error => {
console.log(error);
});
req0.end();
const req1 = http.request({
hostname: 'api.trello.com',
port: 443,
path: `/1/lists/5cc76a2b291f0760361e957e/cards?key=${trelloKey}&token=${trelloToken}&fields=name`,
method: `GET`
}, res => {
let str = '';
res.on('data', chunk => {
str += chunk;
});
res.on('end', () => {
try {
var level1Data = JSON.parse(str);
console.log(`Level 1: ${level1Data}`)
level0Data.forEach((k, v) => {
var id = k.id;
var name = k.name;
console.log(`${id} = ${name}`);
});
level1Data.forEach(function(level1Names) {
// code here
});
} catch(error) {
console.log(error);
}
});
req1.on('error', error => {
console.log(error);
});
req1.end();
});
似乎第二个请求都似乎导致套接字挂断。 我还检查了速率限制,正如Trello API文档所说,我能够每10秒发出300个请求,在这种情况下,这根本没有问题。
指导将不胜感激! 谢谢!