http-errors

中文文档
2.0.1发布于 2025/11/21MIT近 30 天下载 7亿

创建HTTP错误对象

中文使用文档
文档目录9 节
  1. 安装
  2. 例子
  3. API
  4. 错误的属性
  5. createError([status], [message], [properties])
  6. createError([status], [error], [properties])
  7. createError.isHttpError (val)
  8. new createError[code || name]([msg]))
  9. 许可证

的http错误

NPM Version NPM Downloads Node.js Version Build Status Test Coverage

轻松地为Express, Koa, Connect等创建HTTP错误。

安装

这是一个 node . js 模块可通过 npm注册表. 安装是使用 npm install 命令:

$ npm install http-errors

例子

var createError = require('http-errors')
var express = require('express')
var app = express()

app.use(function (req, res, next) {
  if (!req.user) return next(createError(401, 'Please login to view this page.'))
  next()
})

API

这是当前的API,当前从Koa中提取,可能会发生更改。

错误的属性

  • expose -可以用来表示如果 message 应该发给客户, 违约, false 当 status > = 500
  • headers -可以是头名称到要发送到的值的对象 客户端,默认为 undefined。定义时,键名应该全部 是小写
  • message -传统的错误信息,应该保持简短 一行
  • status -错误的状态码,镜像 statusCode 对于一般 兼容性
  • statusCode -错误状态码,默认为 500

createError([status], [message], [properties])

用给定的消息创建一个新的错误对象 msg。 错误对象继承自 createError.HttpError。

var err = createError(404, 'This video does not exist!')
  • status: 500 -状态码的数字形式
  • message -错误消息,默认为该状态码的节点文本。
  • properties -附加到对象的自定义属性

createError([status], [error], [properties])

扩展给定的 error 对象与 createError.HttpError 属性。这不会改变给定对象的继承 error 对象,以及修改后的 error 对象是 返回值。

fs.readFile('foo.txt', function (err, buf) {
  if (err) {
    if (err.code === 'ENOENT') {
      var httpError = createError(404, err, { expose: false })
    } else {
      var httpError = createError(500, err)
    }
  }
})
  • status -状态码的数字形式
  • error -要扩展的错误对象
  • properties -附加到对象的自定义属性

createError.isHttpError (val)

确定所提供的 val 是一个 HttpError。这将返回 true 如果错误继承自 HttpError 此模块的构造函数或 匹配此模块创建的错误的“duck类型”。的所有输出 这个 createError 工厂将返回 true 对于这个函数,包括 如果不是——HttpError 被送进了工厂。

new createError[code || name]([msg]))

用给定的消息创建一个新的错误对象 msg。 错误对象继承自 createError.HttpError。

var err = new createError.NotFound()
  • code -状态码的数字形式
  • name -错误的名称为“颠簸情况”,即 NotFound 或 InternalServerError。

所有构造函数的列表

状态码构造函数的名字
400BadRequest
401未经授权的
402PaymentRequired
403禁止
404NotFound
405MethodNotAllowed
406NotAcceptable
407ProxyAuthenticationRequired
408RequestTimeout
409冲突
410走了
411LengthRequired
412PreconditionFailed
413PayloadTooLarge
414URITooLong
415UnsupportedMediaType
416RangeNotSatisfiable
417ExpectationFailed
418ImATeapot
421MisdirectedRequest
422UnprocessableEntity
423锁
424FailedDependency
425做
426UpgradeRequired
428PreconditionRequired
429TooManyRequests
431RequestHeaderFieldsTooLarge
451UnavailableForLegalReasons
500InternalServerError
501NotImplemented
502BadGateway
503ServiceUnavailable
504GatewayTimeout
505HTTPVersionNotSupported
506VariantAlsoNegotiates
507InsufficientStorage
508LoopDetected
509BandwidthLimitExceeded
510NotExtended
511NetworkAuthenticationRequired

许可证

麻省理工学院

版本与发布记录

http-errors 共发布 30 个版本,首次发布于 2012/11/18;过去 12 个月发布了 1 个版本。

版本发布日期距今
2.0.1latest2025/11/2111 个月前
2.0.02021/12/184 年前
1.8.12021/11/154 年前
1.8.02020/06/296 年前
1.7.32019/06/257 年前
1.7.22019/02/197 年前

关于 http-errors 的常见问题

http-errors 是什么?

创建HTTP错误对象

如何安装 http-errors?

在项目目录运行 npm install http-errors,或使用 pnpm add / yarn add / bun add。

http-errors 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/http-errors 是否存在。

http-errors 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 0.8。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

http-errors 可以商用吗?

http-errors 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

http-errors 的下载量有多少?

根据 npm 官方下载统计,http-errors 在 2026/10/04 – 2026/11/02 这 30 天内被下载 697,495,635 次,日均约 23,249,855 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

http-errors 还在维护吗?

最新版本 2.0.1 发布于 2025/11/21(11 个月前);至今共发布 30 个版本,其中过去 12 个月发布了 1 个;首次发布于 2012/11/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。