我遇到了Node JS和rethinkdb模块的问题。 我正在为我的论文开发程序
此db.js
的代码:
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);
});
}
});
});
}
}
以及来自server.js
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);
});
});
结果总是发送7个相同的数据。实际上手机发送坐标到服务器是干净的配置间隔。
当我试图将驱动程序位置绘制到地图时,这个不需要的循环总是在我的浏览器中崩溃。这是Chrome控制台的截图
答案 0 :(得分:1)
您的方法名称streamAllData
与cursor.next
的使用不符,后者仅提取单个结果。也许您打算使用cursor.each
代替?