var MySQLEvents = require('mysql-events');
var dsn = {
host: 'localhost',
user: 'root',
password: '' // no password set that's why keep blank
};
var mysqlEventWatcher = MySQLEvents(dsn);
console.log(mysqlEventWatcher);
var watcher =mysqlEventWatcher.add(
'myDB.myTable',
function (oldRow, newRow, event) {
//row inserted
if (oldRow === null) {
//insert code goes here
}
//row deleted
if (newRow === null) {
//delete code goes here
}
//row updated
if (oldRow !== null && newRow !== null) {
//update code goes here
}
//detailed event information
console.log(event); // don't matter, it updates, delete or insert
},
'Active'
);从https://www.npmjs.com/package/mysql-events获取代码
当我尝试打印console.log(mysqlEventWatcher);时,它打印的内容如下
{ started: false,
zongji: {},
databases: [],
tables: {},
columns: {},
events: [ 'tablemap', 'writerows', 'updaterows', 'deleterows' ],
triggers: [],
dsn: { host: 'localhost', user: 'root', password: '' },
settings: {},
connect: [Function: connect],
add: [Function: add],
remove: [Function: remove],
stop: [Function: stop],
reload: [Function: reload],
includeSchema: [Function: includeSchema] }在写完这段代码后,我更新了我在mysqlEventWatcher中实现的特定表(‘myTable’),然后它就不会转到该方法,因为我正在打印事件。
我不知道我错过了什么
发布于 2017-09-28 08:22:52
我添加这个答案是因为这个答案首先出现在Google上。希望这能帮助到一些人。
我使用XAMPP作为我的服务器,为了让它正常工作,我编辑了my.cnf文件,该文件可以在这里找到:xampp\mysql\bin,包含以下内容:
我启用了log-bin=mysql-bin的每个实例(通过删除#),并编写了binlog_format=row。
编辑:
server-id =1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format =行
发布于 2017-06-29 16:34:48
var监视器=mysqlEventWatcher.add( 'your_database_name.your_table_name',function (oldRow,newRow,=mysqlEventWatcher.add) {} );var
发布于 2017-06-29 18:58:06
在检查@nguyendn answer的同时,请尝试运行ZongJi standalone来检查它的功能
var ZongJi = require('zongji');
var zongji = new ZongJi({
host : 'localhost',
user : 'user',
password : 'password',
debug: true
});
zongji.on('binlog', function(evt) {
evt.dump();
});如果ZongJi不工作,mysql-event也不会工作。对我来说,ZongJi只在本地主机上工作,而不在远程IP上工作
https://stackoverflow.com/questions/44365600
复制相似问题