跟踪表nodejs

时间:2016-06-17 13:00:57

标签: javascript node.js database

如何使用节点js跟踪表中的更改?对于连接我使用Sequelize。 任务是监视用户数据更改,并在发生更改时将事件发送到前端。我使用socket io,不要使用超时。是否有跟踪事件的方式,如表格字段xxx,其中user_id = yyy已更改'并获得新的领域价值。

1 个答案:

答案 0 :(得分:1)

在续集中尝试挂钩。 在您的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
        }
    }
   }