где посмотреть сообщения response.write ()

0

Я использую HTTP-запрос follwing в моем коде Angular JS

$http.get('http://my url/.../')
       .success(function(data, status, headers, config){
          console.log('response',data);
       })
       .error(function() {
          console.log('Error');
        });

и в моем узле JS я использую

response.write(data);

где я могу получить это значение данных. Потому что я не получаю никакой консоли с данными. Если я использую

response.send(data);

то я получаю консольный журнал из моего JS файла с данными

  • 0
    Нужно показать больше кода узла ... показанные фрагменты ничего не стоят без контекста. Проверьте фактический запрос во вкладке сети инструментов разработчика браузера для большего количества подсказок
  • 0
    извините, msg означает объект ответа
Показать ещё 1 комментарий
Теги:
express

3 ответа

2
Лучший ответ

Данные отправляются в обоих случаях. Только метод send закрывает соединение.

Проблемы состоят в том, что обратный вызов success выполняется только после завершения запроса. Метод write отправляет данные клиенту, но не выполняет запрос. Клиент все еще ждет, пока сервер скажет: "Хорошо, что все сообщение, и больше нечего отправлять". Пока сервер не сделает этого, обратный вызов success не будет запущен.

Метод send (и метод end) закрывает соединение. Когда соединение закрывается, выполняется метод success.

кажется, что вы хотите отправить непрерывный поток данных (так как вы не хотите прекращать соединение), и в этом случае вы можете регистрировать события progress XHR. К сожалению, интерфейс $http настоящее время не показывает события progress.

1

Я предполагаю, что вы используете Express с узлом. С response.write вы просто пишете ответ, не отправляя его. Затем вам нужно вызвать response.end чтобы сказать: "этот ответ готов, отправьте его". response.send пишет и отправляет ответ.

response.send(data);

такой же как:

response.write(data);
response.end();
  • 0
    да, но я спрашиваю: если я использую отправку, я получаю данные, но не с записью. Это запись будет отправлять данные, куда отправить будет отправляет
0

Это должно быть просто:

response.end(data);

Вы должны закончить его, чтобы сбросить ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню