2012-08-03 2 views
0

Node.js에 익숙하지 않고 MongoDb 드라이버를 사용하고 있습니다. Node.js의 워크 플로가 eventdriven이고 모든 것이 비동기로 실행되는 것을 알고 있지만 어떻게 이해할 수 있습니까? 이 같은 일을 수행 할 수 있습니다Node.js MongoDb가 비동기 워크 플로 수집을 보장합니다.

var mongo = require('mongodb'); 
var db = new mongo.Db('meta', new mongo.Server('localhost', 27017, { auto_reconnect: true })); 

db.open(function(error, db){ 
    if(error){ 
    throw error; 
    } 

    db.collection('logs', function(error, collection){ 
    if(!collection){ 
     db.createCollection('logs', callback); // How does this callback works? I mean, how can we continue the previous execution of the script? 
    } 

    // Have fun. 
    }); 
}); 

을 따라서 스크립트 내가 할 위 : 생성하지 않을 경우, 다른 계속

  1. 열기 로그 수집에 대한 연결
  2. 확인 ...
  3. 사용자 만들기? 일해?

아직 비동기 모델에 익숙해지고 있습니다. 도움을 주셔서 감사합니다.

말했다되고 그건
if (!collection) { 
    db.createCollection('logs', next); 
} else { 
    next(null, collection); 
} 

function next(err, collection) { 
    // do something 
} 

createCollection 방법은 또한 컬렉션 개체를 반환 만 그렇지 않은 경우를 만듭니다 : 나는 보통 시나리오의 이런 종류의 일을

답변

1

명명 된 콜백에서 계속 포장입니다 이미 존재합니다. 다음과 같이 쓸 수 있습니다 :

db.createCollection('logs', function(err, collection) { 
    // do something 
}); 
관련 문제