0
에 소정의 콜백 함수에 변수를 전달하도록 socket.io는 사용자에 대한 확인을하여 MongoDB) (onRegister 호출된다. 그러나 DB 콜백 함수가 어떻게 '이'(ioHandle)는 콜백 매개 변수에 추가 할 수있는 미리 정의인가? 방법 Node.js를 사용 Node.js를
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는
ioHandle
정상 자바 스크립트 폐쇄 역학을 통해 해당 기능의 범위에있을 것입니다,
TypeError: Cannot call method 'emit' of undefined
아, 나는 폐쇄 자습서를 통해가는 시간을 보냈다, 그리고 마지막으로 (함수() ...) (ioHandle)에 Mongo.connect을 동봉 - 일, 그래서 나는 그때 그것을 당신 덕분에 발견, 무언가를 배웠다 내가 ioHandle 앞에 'var'이 있으면 자연스럽게 둘러싸여있을 것입니다. 죄송합니다. - 건배! – ChrisAdmin