var mongoose = require('./../mongoose'); var Schema = mongoose.Schema; var sleep = 1000; var timer; var db = mongoose.createConnection(); db.on('error', function () { // error on startup console.error('conn error', arguments); // limit our retries connect.time += sleep; if (connect.time > 22000) return console.error('giving up'); db.db.close(); timer = setTimeout(connect, sleep); }); db.on('open', function () { clearTimeout(timer); console.error('opening'); setTimeout(function(){ find(true); insert(); }, 1000); }); function connect () { db.open('localhost', 'testing_10873199'); } connect.time = 0; connect(); var schema = new Schema({ name: String }); var A = db.model('A', schema); console.error('creating'); var a = new A({ name: '10873199' }); A.create({name:'asdf'},{name:'dddd9'}, function(){}); A.create({name:'asdf2'},{name:'dddd92'}, function(){}); function find (show) { console.error('finding'); A.find(function (err, docs) { console.error('found'); if (show) console.error(err, docs); else console.error('%d docs', docs.length); }); } var time = 0; function insert () { find(false); console.error('inserting'); var a = new A({ key: 'asdfasdasdf' }); a.save(function(err){ console.error('inserted'); if (err) return console.error('save error', err); }); time += sleep; if (time > 20000) return; insertTimer = setTimeout(insert, sleep); } process.on('SIGINT', drop); function drop () { db.db.dropDatabase(function () { console.error('closing'); db.close(); }); process.exit(0); }