【发布时间】:2015-04-21 19:59:09
【问题描述】:
我正在尝试编写一个函数来在我的数据库 (mongodb) 上创建一个新用户,然后将该用户作为我定义的对象返回。但是,由于插入用户的调用是异步的,因此 result.nInserted 始终未定义,因为异步代码没有及时完成。因此,我永远无法返回我的用户。插入完成后,我会尝试使用回调来获取用户,但是我如何能够从原始 addUser 函数返回该数据?
User.addUser = function(db, email, username, password, firstname, lastname, company, twitter){
var _id = new mongodb.ObjectID();
var result = db.get('users').insert({
_id: _id,
email : email,
verified : false,
password : password,
username : username,
firstname : firstname,
lastname : lastname,
company : company,
twitter : twitter,
rank : config.RANK_USER
});
return result.nInserted == 1 ? new User(_id, email, false, username, firstname, lastname, company, twitter, config.RANK_USER) : false;
};
【问题讨论】:
标签: javascript node.js mongodb asynchronous