将 db-query-result 发送给客户端

Send db-query-result to client

正在尝试将结果从节点-mysql 数据库查询发送到客户端。

代码:

io.on('connection', function(socket){
    socket.on('admin', function() {
        [...]
        locations = getUserInfo(function(e,c){...});
        [...]
    });
});

function getUserInfo(callback) {
    var json = '';
    connection.query('SELECT * from locations WHERE loc_id = 1', function(err, results, fields) {
        if(err)
           return callback(err, null);

        console.log('The query-result is: ', results[0]);

        json = JSON.stringify(results);

        console.log('JSON-result: ', json);
        callback(null, json);
    });
};

getUserInfo(function(e,c){
    console.log(c);
});

这是按预期工作的。

但是我不想把它写到控制台而是发送到客户端(用socket.io)。我怎样才能做到这一点?我所有的尝试都以 undefined 结束。

您可能正在发回 locations 对象,该对象始终未定义。尝试:

io.on('connection', function(socket){
  socket.on('admin', function() {
      getUserInfo(function(e,c){
        if(!e){
            socket.emit('locations', c);
        }
      });
  });
});