当节点后端(MongoDB)中的状态更改时通知Angular前端

时间:2018-07-26 08:28:44

标签: javascript node.js angular mongodb express

当MongoDB中的状态更改时,我想对Angular前端进行实时更新。我有什么选择?除例外,还有其他方法吗?使用socket.io?

方案-用户创建提醒,设置电子邮件到达其邮箱的日期。现在,在添加和删除提醒时,我可以在前端侧进行实时模拟,因为我知道用户何时调用导致状态更改的某些操作,但是每个提醒旁边都有一个文本-“电子邮件已发送”或“电子邮件尚未发送”。因为我使用cron作业在后端发送电子邮件,所以前端无法得知。

这是我编写后端代码的第一个项目,所以我只是想知道除了实现大量冗余内容只是为了使一个小功能正常工作以外,还有其他方法吗?

NodeJs + Express + Angular6 + MongoDB

2 个答案:

答案 0 :(得分:2)

检查Change Streams是MongoDB 3.6的最新和最酷的功能,以从数据库访问实时更改。

示例Node.js代码

const collection = db.collection('example');
const changeStream = collection.watch();
const next = await changeStream.next();

答案 1 :(得分:0)

您可以使用angular和rxjs实现轮询服务。该服务将按特定间隔检查您的数据库。

this.subscription = Observable.interval(1000).startWith(1)
.mergeMap(() => this.statusService.getStatus())
.subscribe((next) => {
 this.state = next;
 })

您可以使用rxjs interval operator进行轮询