0
如何使用節點js跟蹤表中的更改?爲了連接我使用Sequelize。 如果有任何更改,任務是監視用戶數據更改並將emmit事件發送到前端。我使用套接字io,並且不會使用超時。有沒有辦法跟蹤事件,如'表字段xxx其中user_id = yyy被更改',並獲得新的字段值。表nodejs中的跟蹤更改
如何使用節點js跟蹤表中的更改?爲了連接我使用Sequelize。 如果有任何更改,任務是監視用戶數據更改並將emmit事件發送到前端。我使用套接字io,並且不會使用超時。有沒有辦法跟蹤事件,如'表字段xxx其中user_id = yyy被更改',並獲得新的字段值。表nodejs中的跟蹤更改
嘗試在續集中使用鉤子。 在你的conf/connection.js中,你可以定義全局鉤子。通過這種方式,你可以攔截一切。
掛鉤定義:
const hooks = {
beforeBulkUpdate: (options) => {
options.individualHooks = true;
return;
},
beforeBulkDestroy: (options) => {
options.individualHooks = true;
return;
},
beforeCreate: (instance, options) => {
sails.log.info(("%s %s"), 'beforeCreate', instance.$modelOptions.tableName);
return;
},
beforeUpdate: (instance, options) => {
sails.log.info(("%s %s"), 'beforeUpdate', instance.$modelOptions.tableName);
var payload = {
before: instance._previousDataValues,
after: instance.dataValues,
changed: instance._changed
};
----> here you can write on the web socket
return;
},
beforeDestroy: (instance, options) => {
sails.log.info(("%s %s"), 'beforeDestroy', instance.$modelOptions.tableName);
return;
}
}
連接:
mydb: {
user: 'myuser',
password: 'mypassword',
database: 'mydatabase',
options: {
dialect: 'mysql',
host: 'myhost',
logging: true,
define: {
hooks: hooks
}
}
}
這將在很大程度上取決於數據庫,並使用該數據庫TEH API。如果數據庫不允許,Node.js只能這樣做。 – DrakaSAN
Sequelinze,MySQL。也許還有其他的ORM,可以解決這個問題嗎? –
數據是由node.js通過Sequelize還是通過其他程序/腳本添加/編輯的? – DrakaSAN