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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在服务器端添加节点js emit事件以发出插入数据库的新记录?相关的知识,希望对你有一定的参考价值。

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

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

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

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

答案

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

这是与之相关的两个包:

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

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

另一答案

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

//使用mongodb和节点

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

以上是关于如何在服务器端添加节点js emit事件以发出插入数据库的新记录?的主要内容,如果未能解决你的问题,请参考以下文章

为节点js中的Socket.io中的特定用户发出事件

在节点 js 中推送通知

如何在 vue3 中的“setup”方法中“发出”事件?

Socket 使用 Node.js 发出 ajax 接收的数据

$emit an event from child to parent in vue.js, es6 语法

发出事件 $emit 时,Vue $on 没有运行我的函数,即使我可以看到在 Vue 控制台中触发的事件