2016-07-22 2 views
1

DB 실행이 실행되기 직전이나 실행 중일 때 db 명령 (저장, 업데이트 등)이 실행되지 않는 시나리오에 대한 몽구스 오류 처리를 테스트하고 있습니다. db 명령. 이 예제 코드에서 : 나는 myModel.save() 줄에 중단 점을 넣으면db 명령을 실행할 수 없을 때 몽고스가 오류를보고하지 않습니다.

var myModel = new MyModel(data); 
myModel.save(function (err, newDoc, numAffected) { 
    if (err || numAffected === 0) { 
     logger.error('Error inserting message: ' + err); 
    } 

    logger.info('Message inserted'); 
}) 

에서, mongod 프로세스를 강제 종료 한 후 코드 실행을 계속 아무 일도 발생하지 않습니다 및 몽구스는 자동으로 실패 것으로 보인다. 콜백이 호출되지 않습니다 아무것도 여기에 기록되지 않습니다 또는 정의의 연결에 '오류'이벤트 리스너는 app.js에 다음과 실행할 수 없습니다 저장 말해 내가 몇 가지 오류 메시지가 예상 한 것

var db = mongoose.connection;  
db.on('error', function(e) { 
    logger.error('connection error:' + e); 
}); 

. 내가 뭘 잘못하고있어?

MongoDB 3.2, mongoose 4.5.1, express 4.14 및 4.2.1 노드를 사용하고 있습니다. 사전에

감사합니다,

프레드

+0

연결 또는 스키마에 [safe] (http://mongoosejs.com/docs/guide.html#safe) 옵션을 전달합니까? 디폴트 값은'true'이어야합니다. –

+0

기본값을 사용하도록 명시 적으로 설정하지 않았습니다. – fshort

답변

1
콜백은 몽구스가있을 때까지 연결이 save가 호출 될 때, 작업이 대기 열이 아니기 때문에 경우에 호출되지 않는

을 다시 설정 연결.

docs here을 참조하십시오.

관련 문제