【问题标题】:Error Object When Fetching From Express Server从 Express 服务器获取时出现错误对象
【发布时间】:2018-02-10 21:31:22
【问题描述】:

我有一个带有简单错误处理程序的 Express 服务器。传递给它的所有 err 对象都是Error 对象。

const errorHandler = (err, req, res, next) => {
  logError(`Express Error Handler: ${err}`);
  res.status(500).json(err);
};

我正在使用request 调用服务器的路由:

request
  .post(
    {
      uri: url,
      timeout,
      json: true,
      form: {
        currentStepUid,
        sourceStepUid: previousStepUid,
        config,
      },
    },
    (error, response, body) => {
      // Handle errors
    }
  )
});

我的问题是错误不是作为error 对象出现,而是作为body 对象上的error 属性出现。

我应该如何设置 Express 以便找回错误对象?

【问题讨论】:

    标签: javascript express error-handling server request


    【解决方案1】:

    request.post() 不会将 500 状态报告为错误。已联系 http 服务器并提供了响应。这不是它认为的错误。由您自己的代码从 http 响应中检测该条件,然后在您自己的代码中将其视为错误。

    您需要查看实际响应才能看到 http 500 状态代码。错误对象是 http 响应正文,所以它应该在哪里。这就是您需要从中获取它的地方。

    如果您必须在多个地方执行相同的逻辑,您可以为 request.post() 创建自己的包装函数,该函数将检查 http 状态代码,如果它在您认为错误的范围内,则获取 http 响应正文并将其变为错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      相关资源
      最近更新 更多