节点/快速应用中错误处理的正确方法是什么?

时间:2019-06-06 14:31:52

标签: javascript node.js express error-handling

所以这不是http失败,这基本上是在成功响应之后,如果某些条件不符合我们提出的响应,则我们将基于逻辑应用过滤器,该响应应引发预期错误。因此,我认为在正确的地方添加了代码,只是好奇是否存在服务失败,因此该代码会影响我的看法,我认为这种情况应该可以解决。

main.js

app.post('url', async (req, res) => {
  try {

    const drugPriceResponse = await fetchDrugPrice(req, externalId, tokenId, drugName);

    if (drugPriceResponse.status && drugPriceResponse.status === 500) {
      res.send(500).send(drugPriceResponse);
    } else {
     res.status(200).send({
        drugPrice: drugPriceResponse
      });
    }
  } catch (e) {
    console.log(e);

    if (e.response) {
      res.status(e.response.status).send(e.response.data);
    } else {
      res.status(500).send(defaultErrorResponse);
    }
  }
});

数据

{

  "drugPrice": {

    "status": 500,

    "title": "Internal Server Error",

    "detail": "Drug prices are not valid"

  }

};

预期输出

{

        "status": 500,

        "title": "Internal Server Error",

        "detail": "Drug prices are not valid"

      }

0 个答案:

没有答案