美文网首页
Koa学习笔记:服务器端错误状态码返回方式

Koa学习笔记:服务器端错误状态码返回方式

作者: 喜欢唱歌的小狮子Shio | 来源:发表于2018-10-30 14:35 被阅读0次

Koa实例提供给中间件的上下文对象context,在对客户端返回请求错误的状态码时有两种方式:

  • context.throw()
  • context.response.status

这两种方法有两点区别:

response.body的自定义权

使用context.throw()方法会返回指定的状态码和默认的response.body,而使用context.response.status设置状态码之后,可以自定义response.body的内容。

如,设置context.throw(404)状态码,response.body的内容默认为Not Found
各种状态码默认返回的response.body与规范一致,默认只推荐设置4xx5xx的状态码。

后续逻辑的执行

context.throw()调用结束后这次响应立即结束,在其后的逻辑不会执行,而通过设置context.response.status返回错误状态码之后的逻辑依然可以有效执行,可以通过输出到控制台观察到这样的区别。这是因为throw方法是直接抛出错误,可从官方源码里看出:

  /**
   * Throw an error with `msg` and optional `status`
   * defaulting to 500. Note that these are user-level
   * errors, and the message may be exposed to the client.
   *
   *    this.throw(403)
   *    this.throw('name required', 400)
   *    this.throw(400, 'name required')
   *    this.throw('something exploded')
   *    this.throw(new Error('invalid'), 400);
   *    this.throw(400, new Error('invalid'));
   *
   * See: https://github.com/jshttp/http-errors
   *
   * @param {String|Number|Error} err, msg or status
   * @param {String|Number|Error} [err, msg or status]
   * @param {Object} [props]
   * @api public
   */

  throw(...args) {
    throw createError(...args);
  },

相关文章

  • Koa学习笔记:服务器端错误状态码返回方式

    Koa实例提供给中间件的上下文对象context,在对客户端返回请求错误的状态码时有两种方式: context.t...

  • HTTP状态码

    状态码 HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。状态...

  • HTTP 状态码

    学习《图解HTTP》-笔记3 HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常...

  • 《图解HTTP》- 状态码 - 学习笔记(二)

    第4章 返回结果的 HTTP 状态码 4.1 状态码告知从服务器端返回的请求结果 状态码的职责是当客户端向服务器端...

  • 图解HTTP协议读书笔记四

    图解HTTP协议读书笔记四 HTTP状态码 HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理...

  • HTTP状态码

    HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。可以把状态码...

  • 图解HTTP之返回结果的HTTP状态码

    HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。 1.状态码...

  • 4 http状态码(status)

    http状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理结果、通知出现的错误等工作。 状态码 以3...

  • 后端返回状态码的几种方式

    前端调用后端接口时,需要关注接口返回的状态码,由状态码来判断请求是否成功。比如,500是服务器端的错误,404可能...

  • HTTP常见状态码(14种)

    HTTP状态码表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常或者是出现的错误,能够根据返回的状态码判...

网友评论

      本文标题:Koa学习笔记:服务器端错误状态码返回方式

      本文链接:https://www.haomeiwen.com/subject/kuowtqtx.html