1- var ZongJi = require ( 'zongji' ) ;
2- var mysql = require ( 'mysql' ) ;
31var EventEmitter = require ( 'events' ) . EventEmitter ;
42var util = require ( 'util' ) ;
53
6- function LiveMysql ( settings ) {
7- var self = this ;
8- var zongji = new ZongJi ( settings ) ;
9- var db = mysql . createConnection ( settings ) ;
10-
11- self . settings = settings ;
12- self . zongji = zongji ;
13- self . db = db ;
14- self . _select = [ ] ;
15-
16- db . connect ( ) ;
17-
18- zongji . on ( 'binlog' , function ( event ) {
19- if ( event . getEventName ( ) === 'tablemap' ) return ;
20-
21- self . _select . forEach ( function ( select ) {
22- if ( select . matchRowEvent ( event ) )
23- select . update ( ) ;
24- } ) ;
25- } ) ;
26-
27- zongji . start ( {
28- serverId : settings . serverId ,
29- startAtEnd : true ,
30- includeEvents : [ 'tablemap' , 'writerows' , 'updaterows' , 'deleterows' ]
31- } ) ;
32- }
33-
34- LiveMysql . prototype . select = function ( query , triggers ) {
35- var self = this ;
36- var newSelect = new LiveMysqlSelect ( query , triggers , this ) ;
37- self . _select . push ( newSelect ) ;
38- return newSelect ;
39- } ;
40-
414function LiveMysqlSelect ( query , triggers , base ) {
425 if ( ! query )
436 throw new Error ( 'query required' ) ;
447 if ( ! ( triggers instanceof Array ) )
458 throw new Error ( 'triggers array required' ) ;
46- if ( ! ( base instanceof LiveMysql ) )
9+ if ( typeof base !== 'object' )
4710 throw new Error ( 'base LiveMysql instance required' ) ;
4811
4912 var self = this ;
@@ -57,10 +20,8 @@ function LiveMysqlSelect(query, triggers, base){
5720}
5821
5922util . inherits ( LiveMysqlSelect , EventEmitter ) ;
60- // util.inherits(LiveMysqlSelect, Array);
61-
6223
63- LiveMysqlSelect . prototype . _escapeQueryFun : function ( query ) {
24+ LiveMysqlSelect . prototype . _escapeQueryFun = function ( query ) {
6425 var self = this ;
6526 if ( typeof query === 'function' ) {
6627 var escId = self . base . db . escapeId ;
@@ -114,4 +75,4 @@ LiveMysqlSelect.prototype.update = function(){
11475 }
11576} ;
11677
117- module . exports = LiveMysql ;
78+ module . exports = LiveMysqlSelect ;
0 commit comments