2016-03-21 4 views
0

я Монго с mongodb.MongoClient как этотповедение MongoDB, когда сервер Монго остановлен

var mongoClient = new MongoClient(new Server(mongoHost, mongoPort)); 
mongoClient.open(function(err, mongoClient) { 
    if (!mongoClient) { 
     logger.error("Error! Exiting... Must start MongoDB first"); 
     process.exit(1); 
    } 
    var dbName = config['mongo.db']; 
    var db = mongoClient.db(dbName); 
    collectionDriver = new CollectionDriver(db); 
}); 

Приведенный выше код работает отлично.

  • Теперь в командной строке я остановил монго.
  • если у меня есть какая-либо операция вроде collectionDriver.save, у меня нет обратного вызова ошибки.

collectionDriver.save определяется как

//save new object 
CollectionDriver.prototype.save = function(collectionName, obj, callback) { 
    this.getCollection(collectionName, function(error, the_collection) { 
     if(error) callback(error) 
     else { 
     obj.created_at = new Date(); 
     the_collection.insert(obj, function(error, result) { 
      if (error) callback(error) 
      else callback(null, result); 
     }); 
     } 
    }); 
}; 

Если я MongoDB снова начать, он работает, как ожидалось.

Каково ожидаемое поведение CollectionDriver.prototype.save при закрытии сервера mongo?

+0

@zangw Нормальное поведение, конечно, заключается в том, чтобы дождаться соединения до тайм-аута. Кажется, это рационально? Было бы неразумно начинать создавать ошибки. Не имеет значения, каково ваше «мнение», но что делает драйвер и каковы текущие настройки. –

ответ

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