为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决node.js异步问题?

如何解决node.js异步问题?

牛魔王的故事 2019-05-25 14:07:57
代码:User.findOne({name:name},function(err,user){if(err){console.log(err);data.data="发生未知错误"data.status=1001}if(!user){console.log(user)data.data="用户不存在"data.status=1002}else{user.comparePassword(password,function(err,isMatch){if(err){console.log(err);data.data="发生未知错误"data.status=1001}if(isMatch){data.data="登录成功"data.status=1000}else{data.data="密码不正确"data.status=1003}})}res.send(data)})问题:数据库用的mongodb,建模工具用的mongoose,这里由于nodejs的异步机制,导致最后res.send(data)发送的数据永远是data:{data:'',status:1000},请问一下怎么写才能够让代码顺序执行,得到正确的data值?
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

mongoose现在都是promise的了建议采用asyncawait
asyncfuncName(){
constuser=awaitUser.findOne({});//await后面接promise对象
....
....
res.send(...data);
}
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 375 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信