2012-03-19 3 views
0

node.js와 mongoskin을 사용하여 간단한 예제를 배우고 시도하고 있습니다. 여기에 내 기능이있다node.js 및 mongoskin 오류 처리 관련 문제

다음 문제는 mongodb 서버가 연결 해제 된 경우에도 "err = null"이되어 연결 오류를 catch 할 수 없다는 것입니다. 내가 Node.js를 서버를 다시 시작하는 경우 (MongoDB의 서버가 여전히 연결하는 동안) 내가 같은 오류 얻을 "[오류 : [서버 aa070에 연결하지 못했습니다 : 27017]]"

// Process messages from client 
    app.post('/send', function(req, res){ 
    var message = { 
     id: i++, 
     nickname: req.param('nickname', 'Anonymous'), 
      text: req.param('text', ''), 
created_at: new Date() 
}; 

conn.chat_log.insert(message, function(err) { 
    if(err!==null){ 
    console.log(err); 
    } 
    else { 
    console.log(message); 
    console.log(err); 
    } 
}); 
res.json({status: 'ok'}); 
}); 
+1

당신은 몽고가 실행되고 있는지 확인 있습니까? – Swift

답변

0

나는 노드에 새로운 해요 .js 및 mongodb,하지만 if(err) 대신 if(err!==null)을 사용하는 이유는 무엇입니까? 내가 올바르게 이해한다면, 당신의 문제를 해결하지 않겠습니까?

+0

사실, 나는 네 문제를 오해 한 것 같아. 죄송합니다. DB에 연결할 수 없을 때 값이 "null"인 오류가 발생하지 않는다고 말하고 있습니까? – Akrasiac

+0

node.js에서 연결이 끊어 질 때마다 mongoDB가 연결되어 있지 않다는 것을 이해하려면 어떤 방법이 필요합니다. 그래서 그 오류 개체는 "MongoDB가 연결되지 않았습니다"와 같은 오류를 반환해야합니다. – Swati

0

가 mongoskin에 대해 알고하지 마십시오,하지만 노드 몽고 네이티브 드라이버 (mongoskin 드라이버가에 내장되어 있습니다), 저자는 말했다 :

Note that there's no reason to pass a callback to the insert or update commands unless you use the safe:true option. If you don't specify safe:true, then your callback will be called immediately.