2012-03-19 2 views
0

Я изучаю и пробую простой пример с помощью node.js и mongoskin. вот моя функция нижеПроблема с обработкой ошибок node.js и mongoskin

Проблема следующая функция, если сервер mongodb отключен, а затем я получаю ошибку «err = null», следовательно, не удается поймать соединение. Если перезапустить сервер 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!==null), а не if(err)? Если я правильно понимаю, разве это не решит вашу проблему?

+0

На самом деле, я думаю, что неправильно понял вашу проблему. Сожалею. Вы говорите, что когда вы не можете подключиться к БД, вы не получаете ошибку, которая имеет значение «null»? – Akrasiac

+0

Я имею в виду, мне нужно понять, что mongoDB не подключен, всякий раз, когда он отключается в node.js. так что объект err должен возвращать ошибку, например, «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.

Смежные вопросы