node.js和mongoskin错误处理问题

时间:2012-03-19 10:38:14

标签: node.js mongodb

我正在学习并尝试使用node.js和mongoskin的简单示例。这是我的功能

问题跟随功能是,如果mongodb服务器断开连接,那么我也得到“err = null”因此无法捕获连接错误。如果我重新启动node.js服务器(而mongoDB服务器仍然断开连接)我得到错误 “[错误:无法连接到[server-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'});
});

2 个答案:

答案 0 :(得分:0)

我是node.js和mongodb的新手,但你为什么要使用if(err!==null)而不是if(err)?如果我理解正确,这不会解决你的问题吗?

答案 1 :(得分:0)

不知道mongoskin,但对于node-mongo-native驱动程序(构建mongoskin的驱动程序),作者说:

  

请注意,没有理由将回调传递给插入或更新   命令,除非您使用safe:true选项。如果你没有指定   safe:true,然后立即调用你的回调函数。