Есть ли способ непрерывно получать обновленные данные mongodb, отправленные из main.js в renderer.js? - PullRequest
0 голосов
/ 13 апреля 2019

Я создаю настольное приложение с электронным хранилищем mongodb. Я отправляю данные, полученные из mongodb (в основном процессе), в процесс рендеринга. Моя цель - получать обновленные данные от mongodb каждый раз, когда они меняются. Есть ли способ автоматически и непрерывно получать обновленные данные, а затем изменять данные таблицы в формате html (сторона рендера).

Я пытался установить интервал, который будет получать данные каждые 10 секунд (вдохновленный работой ajax), но он не удался. Я также пытался реализовать прослушиватель событий для изменения данных в mongodb из основного процесса, который будет излучать сигнал, а затем отправлять новые данные и обновлять их, но это стало слишком сложным и запутанным, а также провалилось.

1 Ответ

0 голосов
/ 13 апреля 2019

Вы можете использовать changeStreams для этой цели:

https://docs.mongodb.com/manual/changeStreams/

Если вы используете mongoose в качестве ORM, вы можете просто вызвать .watch() для вашей модели и определить функцию для запуска в событии изменения

YourModel.watch().on('change', data => console.log(new Date(), data));

В этой функции вы можете сделать что-то для обновления клиента, используя что-то вроде push-уведомлений, подписок graphql или сообщений websocket

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