node.js を使用して、socket.io は onRegister() を呼び出して、ユーザーの mongoDB をチェックします。しかし、DB コールバック関数は事前定義されています。コールバック パラメータに 'this' (ioHandle) を追加するにはどうすればよいですか?
function onRegister(data) {
var name,pass,room;
name = data.name;
pass = data.pass;
ioHandle = this;
Mongo.connect('mongodb://127.0.0.1:27017/main', function(err, db, ioHandle) { // wrong
if(err) throw err;
var collection = db.collection('users');
// does user exist
collection.findOne({name : name}, function(err, doc, ioHandle) { // wrong
if(err) throw err;
if(doc) {
log("User already exists");
ioHandle.emit(NGC_REGISTER_RESULT, {NGC_REJECT:"User already Exists"}); // ioHandle undefined
} else {
// create new user
log("User not found");
ioHandle.emit(NGC_REGISTER_RESULT, NGC_ACCEPT); // ioHandle undefined
}
db.close();
});
});
}
エラー: ioHandle が渡されていません
TypeError: Cannot call method 'emit' of undefined