2017-03-16 2 views
0

ノードJSに問題があり、モジュールをrethinkしています。常に7つの同じデータを送信している結果server.jsRethinkdb Node.JS .changes()不要なループ

var dbrs = require("./db"); 
var rdb = new dbrs(); 
var io = require("socket.io").listen(https.createServer(options,app).listen(port)); 
io.on("connection",function(socket){ 
    rdb.streamAllData("userlocation",function(err,data){ 
     socket.emit("broadcast:userlocation",data); 
    }); 
}); 

から

var r = require("rethinkdb"); 
var host = "localhost"; 
var db = "example"; 
var port = 28015; 
class dbs{ 
    connectToDb(callback){ 
     r.connect({ 
     host:host, 
     port:port, 
     db:db 
     },function(err,connection){ 
      return callback(err,connection); 
      }); 
    } 

    streamAllData(tableName,callback){ 
    this.connectToDb(function(err,conn){ 
    r.table(tableName).changes().run(conn,function(err,cursor){ 
     if(err){ 
     return callback(true,err); 
     } 
     else{ 
     cursor.next(function(err,rows){ 
      return callback(null,rows); 
     }); 

     } 
    }); 
    }); 
} 
} 

と、このコードの断片: 私は現在、私の論文

db.jsのこの部分のコードのためのプログラムを開発しています。実際にサーバーに座標を送信する携帯電話は、設定された間隔できれいです。

マップにドライバの場所を描画しようとすると、この不要なループが常にクラッシュします。クロームコンソール

答えて

1

あなたのメソッド名streamAllDataからのスクリーンショットです

enter image description here

は、単一の結果をフェッチcursor.nextの使用状況を、一致していません。代わりにcursor.eachを使うつもりでしたか?

https://www.rethinkdb.com/api/javascript/next/

+0

もちろんです。私はすべての変更された行ごとに1つの結果を必要とするので、私はすべての単一の行を処理します。 – Reza