Как мне вызвать URL, возвращающий JSON в цикле - PullRequest
0 голосов
/ 26 апреля 2018

Массив Keys содержит 1000 ключей проекта.

for (var i = 0; i < Keys.length; i++){
    httpRequest("https://hostname/api/issues/projectKeys="+Keys[i]+"?format=jSON",
        function (err, res, body) {
             var jsonObj = JSON.parse(body);
             issue.push(jsonObj.total);
          //   console.log(issue.length);

        }).auth(global.username, global.password);

}

URL-адрес в httpRequest возвращает JSON. Пока я запускаю эту программу, после 50-60 ключей данные извлекаются. Моя программа остановлена ​​из-за ошибки.

SyntaxError: Неожиданный токен u в JSON в позиции 0 в JSON.parse ()

Это связано с асинхронной природой NodeJS? Пожалуйста, помогите Как я могу позвонить по URL 1000 раз в цикле.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Отметьте , как правильно выполнять вызовы API в узле. Затем всегда выполняйте проверку нулевого / неопределенного или пустого ответа, как только вы получите ответ от сервера, прежде чем выполнять какую-либо обработку.

0 голосов
/ 26 апреля 2018

Это связано с асинхронной природой NodeJS?

Не напрямую. Вероятно, это происходит из-за того, что ваше приложение затопило какой-либо API, к которому вы обращаетесь, и вы получаете ограниченную скорость или какую-то другую ошибку.

Вы должны смотреть на код состояния ответа, чтобы решить, в порядке ли ваш ответ. Вы должны записать эти ответы, если есть ошибка. Возможно, в ответе есть текстовое сообщение об ошибке.

...