Javascript node/express应用程序中正确的错误处理方法是什么?

Javascript node/express应用程序中正确的错误处理方法是什么?,javascript,node.js,express,error-handling,Javascript,Node.js,Express,Error Handling,所以这不是http失败,这基本上是在成功响应之后,我们应用了基于逻辑的过滤器,若某些条件和我们呈现的响应不符,它应该抛出预期的错误。所以我认为在正确的位置添加了代码,只是好奇是否有服务失败,这段代码会产生影响,我相信在这种情况下它应该被捕获 main.js app.post('url', async (req, res) => { try { const drugPriceResponse = await fetchDrugPrice(req, externalId, tok

所以这不是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);
    }
  }
});
资料

预期产量

{

        "status": 500,

        "title": "Internal Server Error",

        "detail": "Drug prices are not valid"

      }

我看不出你的代码有什么问题。。。又是什么问题?@IsaacVidrine的问题是,如果服务在等待时失败,它将转到下一行,或者它将转到捕获,因为如果服务失败,它不想执行
if(drugPriceResponse.status&&drugPriceResponse.status==500)
此代码如果承诺被拒绝,它将直接转到
捕获
块我看不出您的代码有任何错误。。。又是什么问题?@IsaacVidrine的问题是,如果服务在等待时失败,它将转到下一行,或者它将转到catch,因为如果服务失败,它不想执行
if(drugPriceResponse.status&&drugPriceResponse.status==500)
此代码如果承诺被拒绝,它将直接转到
catch
{

        "status": 500,

        "title": "Internal Server Error",

        "detail": "Drug prices are not valid"

      }