我使用Node.js與socket.io和node-mysql。 我有一個用戶類來登錄和操作用戶。 在構造函數中,我向db查詢。這個關鍵字範圍和對象返回
function user(u,pass,connection,callback){
connection.query("SELECT * FROM `users` WHERE `username`=? && `password`= ? LIMIT 1",[u,pass], function(err,result)
if(err){
console.log(err);
this.id = false;
}
else {
if(result.length > 0){
var row = result[0];
this.socket = null;
this.id = row.id;
this.inuse = null;
}
else
this.id=false;
}
callback(this);
});
}
我必須做一個回調函數,因爲查詢數據庫是異步的。但是,當我使用這個關鍵詞時,我將屬性追加到連接實例而不是我創建的新對象。 此外,當我將這個關鍵字傳遞給回調傳遞'連接'而不是'用戶',所以我沒有我的對象。 有人知道這個問題的解決方案嗎?
我使用這樣的
user_fac(username,password,connection, function(u){
console.log(u);
if(u.id){
clients[u.id] = u;
}
else {
//throw error
}
});
什麼對象?爲什麼'this'不是連接? – adeneo