代码: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的了建议采用asyncawaitasyncfuncName(){constuser=awaitUser.findOne({});//await后面接promise对象........res.send(...data);}
添加回答
举报
0/150
提交
取消