Intereting Posts
пытаясь отобразить html-файлы с помощью нефрита, но он все еще обращается к нему как к нефриту Проблемы с развертыванием приложения Yeoman в Heroku От одного до многих отношений в CompoundJS Как издеваться над запросом и ответом в nodejs для тестирования промежуточного программного обеспечения / controllerов? Добавить поле в существующий документ MongoDB (с помощью Mongoose в Node.js) Почему я не могу убить мой дочерний процесс в nodejs на windowsх? SEC7118: XMLHttpRequest для /socket.io/1/?t=1370206038749 требуется перекрестный поиск ресурсов (CORS) Создание сервера OAuth2 с помощью nodejs Хостинг Angular 2 приложение как преобразовать arraybuffer в строку node.js и HTTP / 2 (2.0) с express.js Запросы Socket IO WebSocket блокируются корпоративными брандмауэрами. Heroku + node.js: У меня есть сервер, который использует несколько портов. Как я могу получить Heroku для их распределения? Невозможно установить @ angular / cli с использованием npm обзор именования и структурирования коллекции MongoDB

не может выполнять несколько res.send в express.js

3 года назад я мог сделать несколько res.send в express.js.
даже напишите setTimeout для отображения живого выхода.

response.send(''); response.send(''); var initJs = function() { $('.button').click(function() { $.post('/input', { input: $('#text_box').val() }, function() { alert('has send');}); }); } response.send('' + initJs + ''); 

Теперь он бросит:

 Error: Can't set headers after they are sent 

Я знаю, что nodejs и express обновлены. почему бы не сделать это сейчас? любая другая идея?


Нашел решение, но «res.write» не находится в ссылке api http://expressjs.com/4x/api.html …

: S

Может понадобиться: response.write

 response.write("foo"); response.write("bar"); //... response.end() 

res.send неявно вызывает res.write за которым следует res.end . Если вы res.send несколько раз, он будет работать в первый раз. Однако, поскольку первый вызов res.send завершает ответ, вы не можете ничего добавить к ответу.

response.send отправляет весь HTTP-ответ клиенту, включая заголовки и контент, поэтому вы не можете его вызывать несколько раз. Фактически, это даже заканчивает ответ, поэтому нет необходимости вызывать response.end явно при использовании response.send .

Мне кажется, что вы пытаетесь использовать send как буфер: записываете его с намерением сбросить позже. Однако это не так, как работает метод. вам нужно создать ответ в коде, а затем сделать один вызов для send .

К сожалению, я не могу говорить, почему и когда это изменение было сделано, но я знаю, что это было так, по крайней мере, с Express 3.