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