javascript - async await 结合mongoose数据库操作问题 没有思路

查看:65
本文介绍了javascript - async await 结合mongoose数据库操作问题 没有思路的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

想实现密码验证功能,逻辑是从数据库获取账号,再对密码进行比较。
通过email获取账号信息,返回promise对象,然后用bcryptjs包的crypt.compare方法进行验证。最后大函数loginExamine的返回值就不知道怎么处理了,感觉我这样写不对,不知道大家怎么处理像这样的逻辑的,刚刚从express到koa,思维都要转变。我还是个小学生,希望大家能指导一下

exports.loginExamine= async (email,password)=>{
    let result= await Account.findOne({email:email},'email tel password').exec();
        return result.then((doc)=>{
            bcrypt.compare(password,doc.password).then((res)=>{
                return res
            })
        })

        
    
}

解决方案

感觉你还没有理解async/await和Promise是怎么使用的。
我的写法如下

exports.loginExamine= async (email,password)=> {
    let doc = await Account.findOne({email:email},'email tel password').exec();
    let verifyPassword = bcrypt.compare(password,doc.password);
    return verifyPassword;
}

这篇关于javascript - async await 结合mongoose数据库操作问题 没有思路的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆