昨天写的一个注册功能,发现一直有问题,今天测试发现,问题貌似出在insert上,果断上代码~
User.prototype.save = function (callback) { var user = { name: this.name, password: this.password, email: this.email } mongodb.open(function (err, db) { if (err) return callback(err); db.collection('users’, function (err, collection) { if (err) { mongodb.close(); return callback(err); } collection.insert(user, {safe: true}, function (err, user) { mongodb.close(); if (err) return callback(err); callback(null, user); }); }); }); };
我发现这个insert 里的回调 callback 给我返回的user 都是undefined,后来我查了网上,说是insert并不是立刻执行,但是有个一个问题,node的异步机制不应该是 等待其执行完毕后,再执行回调嘛~,怎么会出现这种情况呢~该如何解决呀,各位大神~~