2016-06-17 12 views
0

Wie kann ich Änderungen in der Tabelle mit Knoten js verfolgen? Als Verbindung verwende ich Sequelize. Die Aufgabe ist, Benutzerdaten zu ändern und Ereignisse an Frontend zu senden, wenn Änderungen vorgenommen wurden. Ich benutze Socket IO, und nicht Timeout verwenden. Gibt es die Möglichkeit, Ereignisse wie 'Tabellenfeld xxx, wo Benutzer_ID = JJJ geändert wurde' zu verfolgen und einen neuen Feldwert zu erhalten.Verfolgen von Änderungen in der Tabelle nodejs

+0

Es wird die Datenbank stark abhängig von und teh API Sie für diese Datenbank verwenden. Node.js kann das nur tun, wenn die Datenbank dies nicht erlaubt. – DrakaSAN

+0

Sequelinze, MySQL. Vielleicht gibt es andere ORM, die dieses Problem lösen können? –

+0

Werden die Daten von node.js über Sequelize oder ein anderes Programm/Skript hinzugefügt/bearbeitet? – DrakaSAN

Antwort

0

Probieren Sie Haken in Sequelize. In Ihrer conf/connection.js können Sie globale Hooks definieren. Auf diese Weise können Sie alles abfangen.

Haken Definition:

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; 
} 

} 

Verbindung:

mydb: { 
    user: 'myuser', 
    password: 'mypassword', 
    database: 'mydatabase', 
    options: { 
     dialect: 'mysql', 
     host: 'myhost', 
     logging: true, 
     define: { 
      hooks: hooks 
     } 
    } 
    } 
Verwandte Themen