0

Trying to send results from a node-mysql database query to the client.

Code:

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);
});

This is working as expected.

But I don't want to write it to the console but send it to the client (with socket.io). How can I do this? All my attempts ended in getting undefined as result.

drhirn
  • 65
  • 8

1 Answers1

0

You might be sending the locations object back, which is always undefined. Try:

io.on('connection', function(socket){
  socket.on('admin', function() {
      getUserInfo(function(e,c){
        if(!e){
            socket.emit('locations', c);
        }
      });
  });
});
cviejo
  • 4,388
  • 19
  • 30