我应该将此 async/await 和 .exec 与 mongoose 和 google-auth-library 一起使用吗?

Should I use this async/await and .exec with mongoose and google-auth-library?

我有这个后端 (nodeJS),我在其中接收异步函数中的 IdToken

路线在app.js

app.post("/login", login.login );

login.js

exports.login = async (req, res) => { 
  const token = req.body.token;
  const client = new OAuth2Client(googleID, googleSecret); 
  const ticket = client.verifyIdToken({
      idToken: token,
      audience: googleID
  });  
 await ticket.then(data => {
    User.findOne().and([{
      "email": data.payload.email
    }])
    .exec((err, user) => { //code}

但我在某处读到不建议混合异步、.then 和 .exec 我的代码有问题或有改进建议吗?这会导致瓶颈吗?

全看个人喜好了,两者作用相同。在更大的项目上事情开始变得复杂,这就是简单性比嵌套的意大利面条代码派上用场的地方。

我总是更喜欢 async/await,因为它很简单,而且我可以轻松避免嵌套问题以及 try/catch 的好处。

类似这样的代码。

exports.login = async (req, res) => {
            const token = req.body.token;
            const client = new OAuth2Client(googleID, googleSecret);
            const ticket = await client.verifyIdToken({
                idToken: token,
                audience: googleID
            });

            const user = await User.findOne({
                "email": ticket.payload.email
            });

如您所见,更加简洁并添加 try/catch 以捕获错误