批量添加数据到mongoDB,如何才能等所有数据操作都完成了才关闭数据库连接?
发布于 9 年前 作者 ckcfcc 3015 次浏览 最后一次编辑是 8 年前 来自 问答

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

}

回到顶部