#javascript #node.js #express #server #client
Вопрос:
У меня есть экспресс-приложение с сервером, подключенным к клиенту. У меня есть данные сервера, которые я хочу отправить клиенту, и кнопка на клиенте, с помощью которой я хочу запустить функцию на сервере. Я успешно реализовал подключение сервер-> клиент с помощью следующего кода:
клиент js
const source = new EventSource('/events');
source.addEventListener('message', message => {
...
});
сервер js
express()
...
.get('/events', async function(req, res) {
res.set({
'Cache-Control': 'no-cache',
'Content-Type': 'text/event-stream',
'Connection': 'keep-alive'
});
res.flushHeaders();
while (true) {
await new Promise(resolve => setTimeout(resolve, 1000));
res.write(`data: some textnn`);
}
})
...
Это позволяет мне отправлять данные клиенту с сервера. Однако у меня также есть кнопка на клиенте, которую я хотел бы вызвать для функции на сервере. Я думаю, что видел методы с ajax, но я стараюсь избегать этого, если это возможно. Есть ли способ сделать в основном обратное приведенному выше коду, где я могу вызвать событие сервера от клиента (например, событие отправки клиента вместо события отправки сервера, которое я описал выше), без ajax?
Спасибо