Использование server-sent-events после res.render () в Node.js - PullRequest
0 голосов
/ 12 сентября 2018

Я искал способы уведомить клиента о завершении функции, требующей много времени, но после того, как я уже ответил res.render ().

Пользователь Teneff рекомендовал мне Server-sent-eventsв частности этот пакет: https://www.npmjs.com/package/sse-express

Во всех примерах, которые я видел до сих пор, люди не используют sse с res.render ().Я пытался сделать это с помощью этого кода:

app.post('/pst', sseExpress, function(req, res)
{ 
   var url = req.body.convo;
   res.render('error.ejs');
   res.sse('connected', 
     { welcomeMsg: 'Hello world!' }); 
});

, но я получил:

"Error: Can't set headers after they are sent."

Так можно ли отправить sse после res.render ()?

1 Ответ

0 голосов
/ 12 сентября 2018

Так можно ли отправить sse после res.render ()?

Нет.

В любом случае это не имеет смысла.

Вы либо делаете обычный запрос, ожидая регулярного ответа (в этом случае вы используете res.render(), либо вы делаете запрос на поиск SSE, используя let eventSource = new EventSource('http://localhost:80/updates');, и в этом случае все ответы на него должны быть получены черезres.sse().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...