【发布时间】:2017-10-11 04:06:10
【问题描述】:
我对 Node JS 比较陌生。我正在尝试查询数据库,然后简单地使用 socket.io 将该数据发送到前端,但是我注意到它间歇性地发送数据/不发送数据到前端。我假设这背后的原因是因为查询尚未完成,并且想知道在继续之前您将如何等待结果可访问?
我正在使用 npm mysql 访问套接字中的数据库,如下所示:
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host : 'localhost',
user : 'root',
password : '',
database : 'db'
}
);
这是我的查询:
connection.query(queryString, function(err, result, fields){
if(err) throw err;
socket.emit('emitFunction', result);
});
【问题讨论】:
-
我个人只是在前端而不是节点上处理这类事情。
-
“我假设这背后的原因是因为查询尚未完成。” 不,不是这样。
function(回调)不会触发直到结果出现。这就是为什么socket.emit(...)在回调函数内部,而不是简单地作为查询之后的下一条语句的全部原因。在写入套接字之前记录结果。也记录一些时间戳。记录,记录,记录。
标签: javascript mysql node.js sockets