var demoUsers = ['aaa’, ‘bbb’]; var password = '123456’; var db = mongoose.createConnection(‘mongodb://127.0.0.1:27017/test’);
db.on('error’, function(error){ console.log(‘dbError:’ + error); });
db.on('connected’, function(){ console.log(‘db connected!’);
demoUsers.forEach(function(user) {
console.log('开始创建用户:' + user);
createDemoUser(user, password);
});
// 我想在等 所有的用户都创建完成,然后在这里关闭数据连接 但是 因为createDemoUser() 里是异步的,所以,直接就执行db.Close()了,也就是 查询和写入操作还没完成数据库就已经关了,请问各位该如何控制在所有数据创建完成后再 关闭连接?
db.close();
});
function createDemoUser(acc, pwd) { // !!!!这里 userDB.findUser 是异步操作,里面是封装的 mongoose 的查询 userDB.findUser(acc, pwd, function (findErr, findRes) { if (!findErr) { if (!findRes) { !!!!这里 userDB.createUser 也是异步操作,里面是封装的 mongoose 的查询 userDB.createUser(acc, pwd, function (saveErr, saveRes) { if (!saveErr) { console.log(‘create user:’ + acc + ' success.’); } else { console.log(‘create user:’ + acc + ' failed!!!’); console.log(‘err info:’ + saveErr); } }); } else { console.log(acc + ' already exist!’); }
} else {
console.log("userFind() occurs error!");
}
});
}