在nodejs/socket.io中客户端请求后,如何查询mysql数据库?
我看到的所有例子都是先进行查询,然后向客户发送一些信息 如果我先执行查询,然后在函数中使用结果,它会工作:在nodejs/socket.io中客户端请求后,如何查询mysql数据库?,mysql,node.js,socket.io,Mysql,Node.js,Socket.io,我看到的所有例子都是先进行查询,然后向客户发送一些信息 如果我先执行查询,然后在函数中使用结果,它会工作: client.query( ('SELECT * FROM '+TABLES_USERS), function(err, results, fields) { var Users = (results); io.sockets.on('connection', function (socket) { socket.on('event1', function (dat
client.query(
('SELECT * FROM '+TABLES_USERS),
function(err, results, fields) {
var Users = (results);
io.sockets.on('connection', function (socket) {
socket.on('event1', function (data) {
var requser = Users[data];
socket.emit('event2', requser);
});
});
client.end();
});
但现在我需要对客户的请求进行查询。
我尝试了类似的方法,但查询不起作用:
io.sockets.on('connection', function (socket) {
socket.on('event1', function (data) {
console.log('query required'); /*works*/
client.query(
('SELECT * FROM '+TABLES_USERS+' WHERE id_user ='+data),
function(err, results, fields) {
if (err) {throw err; /*doesn't work*/
console.log('error'); /*doesn't work*/ }
console.log('query is done'); /*doesn't work too. so i think query just doesn't work cuz there are no error and no results*/
socket.emit('event2', results);
client.end();
});
});
});
在上面的例子中,有些事情你做得不好(我认为): 1) 在客户端连接到Socket.IO之后,您不会要求登录,而是检查他的会话是否包含可以验证他是否已连接的数据 您应该阅读关于的文章,因为它详细解释了一切(如果您使用的是Express)
2) 我认为MongoDB、CouchDB和其他数据库可能比MySQL更适合于实时应用程序。在上面的示例中,有些事情你做得不好(我认为): 1) 在客户端连接到Socket.IO之后,您不会要求登录,而是检查他的会话是否包含可以验证他是否已连接的数据 您应该阅读关于的文章,因为它详细解释了一切(如果您使用的是Express)
2) 我认为MongoDB、CouchDB和其他数据库可能比MySQL更适合于实时应用程序。我通过使用节点MySQL libmysqlclient而不是节点MySQL解决了这个问题。但是如果有人知道如何在node mysql中根据客户机的请求进行查询,请告诉我)我使用node mysql libmysqlclient而不是node mysql解决了这个问题。但是如果有人知道在节点mysql中客户端请求后执行查询的方法,请告诉我)这不是全部代码。这是它的一部分,我不想复制/粘贴所有内容,因为它不会对我的问题进行任何更改:)好的,但我上面写的内容仍然有效。Thanx,不管怎样,它对我以后会有用的。我想我要用快递,但不是现在。这不是全部代码。这是它的一部分,我不想复制/粘贴所有内容,因为它不会对我的问题进行任何更改:)好的,但我上面写的内容仍然有效。Thanx,不管怎样,它对我以后会有用的。我想我要用快车,但现在不行。什么不管用?你需要提供更多关于这个问题的信息。什么不起作用?您需要提供有关该问题的更多信息。