Java脚本如何在异步函数内引发异常

时间:2018-09-13 05:49:20

标签: javascript node.js async-await

嗨,我的用例是这样的,

  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 block's console log中。

任何帮助! 先谢谢了。 =)

1 个答案:

答案 0 :(得分:2)

因为有错字。您应该写“ res.status(...”而不是“ res.stauts”。此异常不会由“ try ... catch ...”表达式处理。