Javascript如何在异步函数中抛出异常

问题描述 投票:0回答:1

嗨,我的用例是这样的,

  1. 首先,我从前端获取图像路径和餐馆ID。
  2. 然后我检查这家餐厅是否已经有5张图片。如果是,我发送并且例外说“抱歉,您上传的最大图像数量为5”。
  3. 我想将这个错误附加到我的回复中。

这是我的代码。

export async function upload_images_to_restaurant(req, res, next) {
  try {
    const data = req.swagger.params.body.value;
    console.log("Data", data);
    const restaurant_id = data.restaurant_id;

    const count = await db.restaurant_images.count({
      where: {
        restaurant_id: restaurant_id
      }
    })

    if (count >= 5) {
      throw "Sorry maxmimum number of images you can upload is 5."
    } else {
      const upload = db.restaurant_images.create(data)
    }

    console.log("Count", count)
    res.sendStatus(200);
  } catch (error) {
    console.log("Errors", error);
    res.stauts(422).json(error)
  }
}

在catch块控制台日志中它输出错误。但之后它给了我一个错误

这个错误源于在没有catch块的情况下抛出异步函数,或者拒绝未使用.catch()处理的promise。

我想知道为什么我得到这个错误,因为我扔的是在catch block's console log正确输出。

任何帮助!提前致谢。 =)

javascript node.js async-await
1个回答
2
投票

因为有拼写错误。你应该写'res.status(...'而不是'res.stauts'。这个例外不是由'try ... catch ...'表达式处理的。

© www.soinside.com 2019 - 2024. All rights reserved.