常见报错:不要背答案,只记第一检查点
前端 JavaScript
| 报错 | 人话 | 第一检查点 |
|---|---|---|
x is not defined | 当前代码找不到 x 这个名字 | 拼写、声明、import、作用域 |
Cannot read properties of undefined | 前面的值不存在,却继续读取字段 | 错误行中点号前面的变量 |
x is not a function | x 实际不是函数,却被加括号调用 | import 方式、变量实际类型 |
Unexpected token | 代码语法无法被解析 | 当前行和前一行的括号、引号、逗号 |
Maximum update depth exceeded | React 更新形成无限循环 | render 或 effect 中反复 setState |
完整读法:报错信息怎么读。
文件和依赖
| 报错 | 人话 | 第一检查点 |
|---|---|---|
Cannot find module | 找不到文件或安装包 | 路径、大小写、package.json、是否 install |
command not found | 终端找不到这个 CLI | 工具是否安装、是否站在项目目录 |
Missing script: dev | package.json 没有 dev 脚本 | scripts 中真实命令名 |
ERESOLVE | 依赖版本要求互相冲突 | 框架和包版本,不要先强制安装 |
包管理器课程:npm、pnpm、Yarn。
Network 和 API
| 现象 | 人话 | 第一检查点 |
|---|---|---|
Failed to fetch | 浏览器没完成请求 | 后端是否启动、URL、CORS、网络 |
CORS policy | 浏览器不允许当前来源读取响应 | 后端允许的 Origin 和凭证配置 |
401 Unauthorized | 登录身份缺失或失效 | Cookie / Authorization 是否应发送 |
403 Forbidden | 有身份但没有权限 | 账号角色和后端权限规则 |
404 Not Found | 地址或资源不存在 | Request URL、Method、后端路由 |
429 Too Many Requests | 过快、额度或并发受限 | 服务限额、重试策略、用户操作 |
500 Internal Server Error | 后端处理失败 | 同一时间的服务器日志 |
操作方法:Network 面板实操。
后端和数据库
| 报错 | 人话 | 第一检查点 |
|---|---|---|
ECONNREFUSED | 目标地址没有服务接连接 | 服务是否启动、主机和端口 |
DATABASE_URL is not defined | 服务器没加载数据库配置 | 本地或平台环境变量 |
relation does not exist | 数据库找不到表 | 表名、schema、迁移是否执行 |
column does not exist | 查询了不存在的列 | 代码字段和当前数据库结构 |
duplicate key | 唯一字段出现重复值 | 哪个 unique 约束被触发 |
permission denied | 当前身份不允许操作 | 数据库账号或行级权限策略 |
构建和部署
| 报错 | 人话 | 第一检查点 |
|---|---|---|
Build failed | 构建最终失败的总结 | 往上找第一条具体错误 |
Property x does not exist on type y | TypeScript 类型里没有这个字段 | 数据实际结构和类型定义 |
Module not found 仅线上出现 | 环境找不到文件或依赖 | 大小写、锁文件、依赖声明 |
Application failed to respond | 服务没正确接收平台请求 | Start、PORT、绑定地址、运行日志 |
完整方法:构建失败怎样读日志。
复制给 AI 前的最短模板
text
复现步骤:
错误出现在哪:Console / Network / 后端日志 / 构建日志
第一条完整错误:
文件和行号:
Network 状态码和 Response:
本地还是线上:
预期结果:页面返回 500,最下面只显示 Internal Server Error。下一步应该继续猜前端代码吗?
答案:应该查看同一请求时间的后端运行日志,找到第一条具体异常、文件和行号。