2016-03-19 19 views
0

rethinkdbの変更ログ機能に問題があります。コレクションにドキュメントを追加するときにコンソール出力はありません。 BUTnode app.js経由でアプリケーションを起動した後に「変更」が1回出力されるのはなぜですか?どんな助けもありがとうございます。文書を挿入するときにchanges()が呼び出されない

// rethinkdb connection 
var connection = null; 
r.connect({ db: 'bc', host: 'localhost', port: 1337}, function(err, conn) { 
    if(err) throw err; 

    connection = conn; 
    observeBets(); 
}); 


function observeBets() { 
    r.table('bets').changes().run(connection, function(err, betsCursor) { 
     if (err) throw err; 

     console.log("changes"); 
    }); 
} 

挿入

var bet = { 
    bet: "test", 
    userID: 213 
}; 
r.table('bets').insert(bet); 
+0

データエクスプローラを使用してchanges()クエリを実行すると、期待通りに動作するため、おそらくノードの問題があるはずです。 – Chris

答えて

1

を経由して私はあなたがbetsCursorを反復処理する必要があると思います。

+0

しかし、なぜですか?それは 'console.log(" changes ")'と呼ばれるコールバック関数ではありませんか? – Chris

+0

コールバックは変更ごとに一度呼び出されません。変更を*購読し終えたら一度呼び出され、カーソルが渡されます。 'bestCursor.each(callback2)'を呼び出すと、変更ごとに 'callback2'が呼び出されます。 – mlucy

+0

それはうまく働いた、ありがとう! – Chris

関連する問題