Я снова получил ошибку с моим кодом. Я пытаюсь получить некоторые детали для карт из API Trello из двух разных списков. Мой первый список работает без перебоев, но по какой-то причине второй список выдает ошибку «зависание сокета» всякий раз, когда я запускаю программу.
Я прочитал об этом в Интернете, и общий ответ, похоже, таков: у человека, вероятно, отсутствует 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, я могу делать 300 запросов в 10 секунд, что в данном случае вообще не проблема.
Руководство будет высоко ценится!
Спасибо!