Traté de usar asíncrono y promesas para corregir este error. Pero aún no puedo solucionarlo. Hay dos archivos index.js y db.js en backend.
db.js es el archivo que tiene la clase con todos los métodos de tipo CRUD. index.js está usando ese objeto de clase y enviando el resultado a la interfaz.
Aquí está la parte del error en el código.
Dentro index.js
socket.on("login", (User) => { console.log(User); let usersLoading = db.sign_in(User); console.log("UserLoading is... \n", usersLoading); socket.emit("UsersLoading", usersLoading); }); Dentro db.js
async sign_in(user) { // this is the async method let fquery = "select * from Users where (Username = '" + user.Username + "'and Password = '" + user.Password + "')"; let response = []; await this.con.query(fquery, function (err, result) { if (err) { console.log(err); } else { if (result.length == 0) { response.push({ Condition: "empty", }); } else { response.push({ Condition: "notempty", }); response.push(result[0]); } } }); return response; // I am trying to send the query response back to index.js file. }El valor de usuario en inxed.js es:
{ Username : "xyz", Password : "abc" }En realidad, la parte de consulta funciona correctamente, pero no puede almacenar el valor en la variable 'respuesta'. También traté de hacer esto después de leer esto y esta página, pero desafortunadamente no pude resolver este problema.