HTTP - запрос / ответ.Клиент отправляет запрос, сервер отправляет ОДИН ответ.Ваш первый res.json()
- это ваш ОДИН ответ.Вы не можете отправить другой ответ на тот же запрос.Если это просто вопрос сбора всех данных перед отправкой одного ответа, вы можете переосмыслить свой код, чтобы собрать все данные перед отправкой одного ответа.
Но, по-видимому, вы ищете "сервер"нажмите ", где сервер может отправлять данные клиенту постоянно, когда он этого хочет.Обычным решением для этого является подключение к webSocket (или socket.io, который построен поверх webSocket и добавляет дополнительные функции).
В архитектуре webSocket / socket.io клиент устанавливает соединение с сервером исоединение остается открытым до бесконечности.Тогда любая сторона соединения может отправлять сообщения на другой конец.Это наиболее полезно, когда сервер хочет «передать» данные клиенту в любое время.В этом случае клиент устанавливает соединение, затем сервер может отправлять данные клиенту через это соединение в любое время.Клиент регистрирует прослушиватель для входящих сообщений и будет уведомляться каждый раз, когда сервер отправляет ему некоторые данные.
И webSocket, и socket.io полностью поддерживаются в современных браузерах и в файле node.js.Я бы лично порекомендовал использовать socket.io, потому что некоторые функции, которые он добавляет (уровень обмена сообщениями, автоматическое переподключение и т. Д.), Очень полезны.
Для использования такого постоянно подключенного сокета вы будете использоватьубедитесь, что ваша хостинговая инфраструктура правильно настроена, чтобы разрешить это.