如何在服务器端添加节点js emit事件以发出插入数据库的新记录?

问题描述 投票:0回答:2

我正在开发一个节点js套接字后端,需要向客户端发送新记录。

我的意思是,想象我有一个mysql数据库,并且节点js正在运行,我想发出任何实时插入数据库的新记录,正是那个特定的最后插入记录。

现在我正在使用节点js计时器,这个计时器正在检查数据库并每隔1秒向客户端发送所有记录,我不想要这个。

我搜索了很多,但没有找到这样的东西。谢谢你的任何建议。

javascript mysql node.js database socket.io
2个回答
0
投票

之前探索过的一种可能的方法是听Mysql's Binary log,也缩写为binlog。

这是与之相关的两个包:

  • 第一个包名为Zongji,旨在成为一个Mysql binlog监听器:Npm - zongji
  • 第二个包,称为mysql-events,使用第一个包以更方便的方式监听事件:Npm - mysql-events

第二个包有一个详细的文档,可以让您立即开始收听Mysql更新。


0
投票

最简单的方法是在将记录保存到数据库后立即发出事件

//使用mongodb和节点

  let newStudent = new Student(studentToBeRegistered);
  newStudent.save().then((data: any) => {
     // on success
     // emit socket
     socket.emit('newRecord', data)
    }).catch((err) => {
    console.log(err)
    });
© www.soinside.com 2019 - 2024. All rights reserved.