sequelize异步查询后对比数据

Compare data after sequelize asynchronous query

我有这个代码:

VerificationKey.getCode = async (visitorData, visitorCode, res) => {
  console.log("Verif model visitorCode" + visitorCode);

  const data = visitorData;
  const testCode = visitorCode;
  const findVisitor = await VerificationKey.findOne({ where: { data } })

    .catch((err) => {
      console.log(err);
    })
    .then(() => {
      if (testCode == findVisitor.key) {
        res.status(200).json({ response: true });
      }
    });
};

我需要的是比较 testCode 和 findVisitor.key 值。 如果它们相等,我想return一个布尔值到前端。

但是我不能这样写,因为在初始化之前无法访问findVisitor.key。

我认为您必须更改代码以仅使用 async/await 语法 - 不使用 thencatch:

VerificationKey.getCode = async (visitorData, visitorCode, res) => {
  console.log("Verif model visitorCode" + visitorCode);

  const data = visitorData;
  const testCode = visitorCode;

  try {
    const findVisitor = await VerificationKey.findOne({ where: { data } });
    
    if(!findVisitor) {
      res.status(404).json({ response: false });
    } else if(testCode == findVisitor.key) {
      res.status(200).json({ response: true });
    } else {
      res.status(403).json({ response: false });
    }
   } catch(err) {
    console.log(err);
   }
};