Javascript 在数组中推送mysql json

Javascript 在数组中推送mysql json,javascript,mysql,arrays,node.js,json,Javascript,Mysql,Arrays,Node.js,Json,我对nodeJs中的mysql查询有问题。 在实践中,我执行查询,它会向我返回一个json和查询结果,然后我必须将查询返回的结果插入一个数组变量中。我只是不知道如何滚动和选择数组的元素,因为当我尝试选择诸如“name”之类的元素时,它总是给我未定义的元素 Mysql查询: conn.query("SELECT * FROM user WHERE id=?",[id] ,function(err, result){ if(!err){ if(result.len

我对nodeJs中的mysql查询有问题。 在实践中,我执行查询,它会向我返回一个json和查询结果,然后我必须将查询返回的结果插入一个数组变量中。我只是不知道如何滚动和选择数组的元素,因为当我尝试选择诸如“name”之类的元素时,它总是给我未定义的元素

Mysql查询:

conn.query("SELECT * FROM user WHERE id=?",[id] ,function(err, result){
        if(!err){
          if(result.length == 1){
            //Invio segnale di logged-in al client
            conn.end();
            resolve(result[0]);
          }
        }
      })
代码节点:

socket.on('index', function(){
  socket.emit('index', counterOnline);
  if(counterOnline > 0){
    console.log(userOnline);
    socket.emit('userOnline', userOnline);
  }
})
日志:

如果是,则为console.log(userOnline[0].nome);我得到“未定义”

解析(结果[0])
将返回一个承诺,您必须使用:

var userOnline = [];
socket.on('online', function(idUser){
  counterOnline++;
   dataUser.online(idUser).then(function(idUser) {
     userOnline.push(idUser);
   })

})
dataUser.online(idUser):


我得到同样的“未定义”,你能给我一个你用书面代码说的例子吗?请分享counterOnline和userOnline的函数定义,但是userOnline和counterOnline是两个变量,分别是数组和普通变量。你在哪里分配它们?如何调用包含
conn.query(“SELECT*FROM user WHERE id=?”,[id],function(err,result){
?非常感谢。另一个问题,现在要从数组中按id删除记录,我能做什么?
var userOnline = [];
socket.on('online', function(idUser){
  counterOnline++;
   dataUser.online(idUser).then(function(idUser) {
     userOnline.push(idUser);
   })

})
var userOnline = [];
socket.on('online', function(idUser){
  counterOnline++;
  userOnline.push(dataUser.online(idUser));
})
function online(id){

var response = new Promise(function(resolve, reject){

var conn = connect();

  conn.connect(function(err){
    if(!err){
      //query ricerca utente nel db
      conn.query("SELECT * FROM user WHERE id=?",[id] ,function(err, result){
        if(!err){
          if(result.length == 1){
            //Invio segnale di logged-in al client
            conn.end();
            resolve(result[0]);
          }
        }
      })
    }
  })

  })

  return response;
   }