我正在开发一个项目,我应该在每次触发数据库事件时发布通知。
我正在使用NODE。 BUt我不确定我是否能够这样做。
我偶然发现了this问题,但这并没有多大帮助。
我也看过NODE.js MySql Connectors
我的真实问题是什么:
1)是否有类似于在节点js中读取MySql触发器的内容。 ?只要在所需的表格中输入一行,我可以立即发送通知吗?
2)如果是,我应该怎么做呢?
3)如果不可能并且每隔几秒钟我必须手动检查数据库更改,为什么我应该使用Node.js 而不是每隔几秒钟从浏览器进行异步调用jQuery的?
任何帮助都会得到满足......!
答案 0 :(得分:1)
据我所知,没有任何简单的方法可以在Node中读取数据库触发器,因此常见的解决方案是使用Redis作为发布系统,并使用连接器模块来实现数据库查询。一个非常流行的Node的MySQL连接器是this一个,所以我将以它为例。
使用模块时,您正在寻找的“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 Events 或 WebSockets 将此更改发送到浏览器。
作为第三个问题的副作用,将数据从服务器推送到客户端总是比客户端一直要求数据更有效,因为当客户端要求服务器时,服务器不能保证需要数据。