2016-06-17 8 views
0

ノードjsを使用してテーブルの変更を追跡するにはどうすればよいですか?接続のために私はSequelizeを使います。 変更があった場合、タスクはユーザーデータの変更を監視し、フロントエンドにイベントを送信します。私はソケットioを使用し、タイムアウトを使用しないでください。 'user_id = yyyが変更されたテーブルフィールドxxx'のようなイベントを追跡し、新しいフィールド値を取得する方法はありますか?テーブルnodejsの変更を追跡

+0

それは、データベースの依存、そして重くなりますが、そのデータベースに使用TEH API。 Node.jsはDBがそれを許可しない場合にのみそれを行うことができます。 – DrakaSAN

+0

Sequelinze、MySQL。多分、この問題を解決できる他のORMがありますか? –

+0

Sequelizeや他のプログラム/スクリプトを使用してnode.jsによってデータが追加/編集されていますか? – DrakaSAN

答えて

0

フックを続行してください。 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 
     } 
    } 
    } 
関連する問題