0

我正在做一个项目,每当触发数据库事件时,我都应该发布通知。

我为此使用节点。但是我不确定我是否能够做到。

我在 SO 上遇到了这个问题,但这并没有太大帮助。

我还看到了 NODE.js MySql 连接器

我真正的问题是:

1)有什么像在Node js中读取MySql触发器的东西。? 我可以在所需表格中输入一行后立即推送即时通知吗?

2)如果是,我应该怎么做?

3)如果不可能,我必须每隔几秒钟手动检查一次数据库更改,为什么我应该使用 Node.js而不是每隔几秒钟使用 jQuery 从浏览器进行异步调用?

任何帮助将不胜感激......!

4

1 回答 1

1

据我所知,在 Node 中读取数据库触发器没有任何简单的方法,因此一个常见的解决方案是使用 Redis 作为发布系统,并使用连接器模块执行实际的数据库查询。一个非常流行的用于 Node 的 MySQL 连接器就是这个,所以我将使用它作为示例。

使用模块时,您正在寻找的“MySQL 触发器”只是您可以在大多数异步模块中找到的简单回调。node-mysql以下是使用模块查询的示例:

var post  = {id: 1, title: 'Hello MySQL'};
connection.query('INSERT INTO posts SET ?', post, function(err, result) {
  //the database transaction has completed, notify the client
});

当回调被调用时,这意味着数据库操作要么完成,要么失败(检查err回调中的属性以检查这一点)。然后,您可以使用EventSource/Server-Sent EventsWebSockets将此更改发送到浏览器。

作为对第三个问题的一个侧面回答,将数据从服务器推送到客户端总是比客户端持续请求数据更有效,因为当客户端请求数据时,服务器不能保证有需要的数据。

于 2013-09-03T02:52:17.773 回答