ArsenBespalov
@ArsenBespalov
Сам себе разработчик

Как дождаться завершения загрузки http response в Node.js?

Делаю сайт, на котором есть oAuth авторизация/регистрация. Встрял на проблеме авторизации через Google. Использовать модули googleapis для Node.js совершенно не хочу, т.к. для каждого провайдера пишу сам алгоритм авторизации и регистрации.

Проблема заключается в том, что когда запрашиваю access_token, google выводит ответ частями, всего 3 части, которые я не знаю как собрать.

Использую для получения ответа:

res.on('data', function(chunk) {
	gp_res = JSON.parse(chunk);
});


В таком случае случается ошибка из-за того, что chunk в конце становиться пустым.

Если выводить для отладки через console.log(chunk), то видно как ответ сервера разделен на 3 части.

Если же выводить данные с помощью process.stdout.write(chunk), то как-бы данные собираются в один блок данных.

Как мне собрать все данные? Я такое встретил в первые, с остальными Facebook, Одноклассники, Вконтакте такого не было.
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
keksmen
@keksmen
Just a programmer
https://nodejs.org/api/http.html#http_class_http_c...
Читайте документацию, да гайды. Благо, по стандартным API функциям их туевы хучи через тот же гугл найти можно.

Что же до вашего примера, то записывайте данные куда-нибудь в пределах области видимости вашего замыкания.
var _json='';

socket.on('data', function(chunk) {
    _json+=chunk.toString();
});

socket.on('end', function() {
    var result=JSON.parse(_json);
    ...
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы