HTTP响应状态码
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
概述
如果没有一个库能够将所有 HTTP 状态码集中在一个地方提供,创建 API 就绝非易事。正因如此,我开发了一个美观、灵活且抽象化的软件包,其中包含了 RFC(请求评论规范)中列出的所有 HTTP API 状态响应代码。
用法
const express = require('express');
const { Response } = require('http-status-codez');
const User = require('./models/user');
const app = express();
app.get('/api/v1/users', catchAsync(async (req, res, next) => {
const users = await User.find();
res.status(Response.HTTP_OK).json({
status: 'success',
results: users.length,
data: {
users,
},
});
}));
app.get('/api/v1/users/:id', catchAsync(async (req, res, next) => {
const user = await User.findById(req.params.id);
if (!user) {
return next(
new AppError('User not found with that ID', Response.HTTP_NOT_FOUND);
);
}
res.status(Response.HTTP_OK).json({
status: 'success',
data: {
user,
},
});
实现说明
| 代码 | 实例属性 | 短语 |
|---|---|---|
| 100 | HTTP_CONTINUE | 继续 |
| 101 | HTTP_SWITCHING_PROTOCOLS | 交换协议 |
| 102 | HTTP 处理 | 加工 |
| 103 | HTTP早期提示 | 早期迹象 |
| 200 | HTTP_OK | 好的 |
| 201 | HTTP_CREATED | 创建 |
| 202 | HTTP_ACCEPTED | 公认 |
| 203 | HTTP非权威信息 | 非权威信息 |
| 204 | HTTP_NO_CONTENT | 无内容 |
| 205 | HTTP_RESET_CONTENT | 重置内容 |
| 206 | HTTP_PARTIAL_CONTENT | 部分内容 |
| 207 | HTTP_MULTI_STATUS | 多状态 |
| 208 | HTTP_ALREADY_REPORTED | 已报道 |
| 226 | HTTP_IM_USED | 即时通讯 |
| 300 | HTTP_MULTIPLE_CHOICES | 多项选择题 |
| 301 | HTTP_MOVED_PERMANENTLY | 永久迁移 |
| 302 | HTTP_FOUND | 成立 |
| 303 | HTTP_SEE_OTHER | 查看其他 |
| 304 | HTTP_NOT_MODIFIED | 未修改 |
| 305 | HTTP_USE_PROXY | 使用代理 |
| 306 | HTTP_RESERVED | 预订的 |
| 307 | HTTP_TEMPORARY_REDIRECT | 临时重定向 |
| 308 | HTTP 永久重定向 | 永久重定向 |
| 400 | HTTP 错误请求 | 错误的请求 |
| 401 | HTTP_UNAUTHORIZED | 未经授权 |
| 402 | HTTP_PAYMENT_REQUIRED | 需支付款项 |
| 403 | HTTP_禁止 | 禁忌 |
| 404 | HTTP 未找到 | 未找到 |
| 405 | HTTP 方法不允许 | 方法不允许 |
| 406 | HTTP_NOT_ACCEPTABLE | 不可接受 |
| 407 | HTTP_PROXY_AUTHENTICATION_REQUIRED | 需要代理身份验证 |
| 408 | HTTP 请求超时 | 请求超时 |
| 409 | HTTP_冲突 | 冲突 |
| 410 | HTTP_GONE | 已消失 |
| 411 | HTTP_LENGTH_REQUIRE | 所需长度 |
| 412 | HTTP 前置条件失败 | 前提条件失败 |
| 413 | HTTP请求实体过大 | 请求实体过大 |
| 414 | HTTP 请求 URI 过长 | 请求 URI 过长 |
| 415 | HTTP_UNSUPPORTED_MEDIA_TYPE | 不支持的媒体类型 |
| 416 | HTTP_REQUESTED_RANGE_NOT_SATISFIABLE | 请求范围不满足 |
| 417 | HTTP 预期失败 | 预期落空 |
| 418 | HTTP_I_AM_A_TEAPOT | 我是茶壶。 |
| 419 | HTTP_INSUFFICIENT_SPACE_ON_RESOURCE | 资源空间不足 |
| 420 | HTTP 方法失败 | 方法失败 |
| 421 | HTTP 误定向请求 | 错误的请求 |
| 422 | HTTP_UNPROCESSABLE_ENTITY | 不可处理的实体 |
| 423 | HTTP_LOCKED | 已锁定 |
| 424 | HTTP_FAILED_DEPENDENCY | 依赖项失败 |
| 425 | HTTP 过早 | 为时过早 |
| 426 | HTTP_UPGRADE_REQUIRED | 需要升级 |
| 428 | HTTP 前提条件要求 | 前提条件 |
| 429 | HTTP 请求过多 | 请求过多 |
| 431 | HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE | 请求头字段过大 |
| 451 | HTTP_UNAVAILABLE_FOR_LEGAL_REASONS | 因法律原因暂不可用 |
| 500 | HTTP 内部服务器错误 | 内部服务器错误 |
| 501 | HTTP 未实现 | 未实施 |
| 502 | HTTP_BAD_GATEWAY | 糟糕的网关 |
| 503 | HTTP_SERVICE_UNAVAILABLE | 暂停服务 |
| 504 | HTTP 网关超时 | 网关超时 |
| 505 | HTTP 版本不支持 | 不支持的HTTP版本 |
| 506 | HTTP_VARIANT_ALSO_NEGOTIATES_EXPERIMENTAL | 变体也进行谈判 |
| 507 | HTTP_存储不足 | 存储空间不足 |
| 508 | 检测到 HTTP 循环 | 环路检测器 |
| 5010 | HTTP_NOT_EXTENDED | 未扩展 |
| 511 | HTTP_NETWORK_AUTHENTICATION_REQUIRED | 需要网络身份验证 |