首页 > 解决方案 > POST 请求... UnhandledPromiseRejectionWarning:未处理的承诺拒绝

问题描述

发出发布请求时,我收到此错误:

UnhandledPromiseRejectionWarning:未处理的承诺拒绝。

如果有人可以解释为什么会发生这种情况,我将不胜感激:)谢谢

更新

因此,此代码成功发布。但是,当我取消注释验证代码时,我得到了同样的错误......

router.post("/", async (req, res) => {
  //let client = validate(req.body);

  //if (client.error) {
    //res.status(400).json(result.error);
    //return;
  //}

  let client = new Client(req.body);

  try {
    let savedClient = await client.save();
    res.location(`/${savedClient._id}`).status(201).json(savedClient);
  } catch (error) {
    res.status(500).json(savedClient.error);
  }
});

标签: javascriptnode.jsmongodbexpress

解决方案


我看不到您在哪里初始化savedClient,我认为您的错误在于您的捕获。您引用的对象 ( savedClient) 似乎不在范围内。

尝试这个:

router.post("/", async (req, res) => { 
  let client = new Client(req.body);
  try {
    let savedClient = await client.save();
    res.location(`/${savedClient._id}`).status(201).json(savedClient);
  } catch (error) {
    console.log(error)
    res.status(500).json(error);
  }
});

推荐阅读