在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,不管怎样,它对我以后会有用的。我想我要用快车,但现在不行。什么不管用?你需要提供更多关于这个问题的信息。什么不起作用?您需要提供有关该问题的更多信息。