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!");
}
});}