Ich habe eine Weile daran fest und ich weiß nicht, was los ist. Ich habe eine separate Klasse namens Database.js, die die MySQL-Funktionen ausführt, sie verwaltet die Verbindung, Abfragen usw. Ich habe versucht, es zu bekommen, um Informationen aus der 1 Zeile zu erhalten, die es zurückgeben sollte (Ein Benutzer mit dem richtigen Benutzernamen und Passwort)) aber es sagt, die Variable ist undefiniert. Wenn ich die Objektfelder in der Funktion protokolliere, bevor ich sie zurückgebe, funktionieren alle gut.Rückgabewert für eine Funktion ist undefined
Hier ist der Code mit einem wenig mehr Kontext:
socket.on('loginAttempt', function(data) {
//Check credentials with database...
try {
var fuser = Database.checkAccount(data.username, data.password);
if (fuser === undefined) {//This is always being called
console.log("fuser is undefined");//For debug only
}
} catch(err) {
console.log(err.message);
}
try {
if (fuser !== undefined) {
socket.emit('loginMessage', {status:true});
socket.id = Math.random();
SOCKET_LIST[socket.id] = socket;
var player = Player(socket.id, fuser.Username, fuser.Rank, fuser.Points);
PLAYER_LIST[socket.id] = player;
return;
}
socket.emit('loginMessage', {status:false});
} catch(err) {
console.log(err.message);
}
});
, dass die Funktion, die das unruhige Objekt aufruft, hier ist die checkAccount() Funktion von Databse.js (Ich habe mein Modul enthält. wenn das hilft) Exporte:
function checkAccount(username, password) {
con.query("SELECT * FROM Userbase WHERE Username='" + username + "' AND Password='" + password + "';", function(err, rows) {
if (err) throw err;
if (rows.length > 0) {
var returnedUser = new User();
returnedUser.Username = username;
returnedUser.Password = password;
returnedUser.Rank = rows[0].Rank;
returnedUser.Points = rows[0].Points;
return returnedUser; // This should return the User object however when run in my app.js it is undefined
}
return null;
});
}
module.exports.mysql = mysql;
module.exports.con = con;
module.exports.checkAccount = checkAccount;
module.exports.User = User;
module.exports.init = init;
Jede mögliche Hilfe würde geschätzt! c: