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

时间:2019-02-18 21:52:44

标签: javascript mysql node.js database socket.io

我正在开发需要向客户端发出新记录的节点js套接字后端。

我的意思是,假设我有一个mysql数据库,而node js正在运行,我想发出实时插入数据库中的任何新记录,即最后插入的特定记录。

现在我正在使用node js计时器,该计时器正在检查数据库并每1秒向客户端发出所有记录,我不希望这样。

我搜索了很多,但没有找到类似的东西。 感谢您的任何建议。

2 个答案:

答案 0 :(得分:0)

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

这里有两个与之相关的软件包:

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

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

答案 1 :(得分:0)

最简单的方法是在将记录保存到db之后立即发出事件。

//假设使用mongodb和node

  let newStudent = new Student(studentToBeRegistered);
  newStudent.save().then((data: any) => {
     // on success
     // emit socket
     socket.emit('newRecord', data)
    }).catch((err) => {
    console.log(err)
    });