[TOC]
### Koa2 错误处理
* [ ] koa2 自带异常处理
```
ctx.throw( [状态码], [错误消息] )
```
* [ ] 自定义错误中间件
>[danger] 自定义错误中间件,需要把中间件放在所有中间件中第一个,然后用try catch 捕获异常
代码实现:
1. 定义一个错误
![](https://box.kancloud.cn/bee9b88719a4cd9bb293bb8257fae038_503x248.png)
2. 入口文件定义全局异常中间件
![](https://box.kancloud.cn/9ca39fc59a54a7c11989dfa71096e453_801x383.png)
>[danger] 注意:断点调试时,需要重启node程序,404错误是不走自定义异常中间件的
*****
#### koa-json-error 错误中间件
* [ ] 安装:cnpm i --S koa-json-error
* [ ] 使用:
1. 注册中间件
![](https://box.kancloud.cn/fdab6a82caf8a4e12cea03e9ecf89408_633x335.png)
>[danger] 注意:全局异常捕获中间件要写在中间件中的第一位
*****
#### 区分开发环境和上线环境,线上环境不打印堆栈信息
![](https://box.kancloud.cn/a9817c4a9b1814707b18c5a53efc0242_645x233.png)
>[danger] postFormat 格式化错误信息
> process.env.NODE_ENV 环境变量
> production 线上环境
- 序言
- ES6模块化
- node基础
- FS模块
- 常用变量
- crypto加密
- 基础
- 安装
- 中间件
- 架构
- 结构分层
- 配置
- 路由
- 安装路由
- 自动加载
- 获取参数
- 路由前缀
- 路由中间件
- 控制器
- 请求
- 请求信息
- 数据库
- mongoDB
- mongoDB原生语句
- mongoDB数据库角色
- mongoose连接数据库
- 自动记录时间戳
- 模型
- mongoose模型
- 定义
- 模型初始化
- 查询
- 新增
- 更新
- 删除
- 隐藏字段
- 模式
- 关联查询
- 复杂模型
- 仿知乎个人资料建模
- 关注与粉丝
- 视图
- 模板
- edge
- 日志
- 错误和调试
- 调试当前文件
- nodemon调试
- 异常处理
- Koa2错误处理
- 验证
- Koa验证器
- async-validator
- installation
- 安全
- 数据加密
- 杂项
- jwt
- koa-jwt
- env环境变量配置
- 上传
- 分页和模糊搜索
- 扩展
- nodemon
- bodyparser
- koaJsonError
- cross-env
- uuid生成唯一ID
- pope字符串模板引擎
- 命令行
- 部署
- 附录
- RESTfulApi
- Http动词
- 状态码
- 调用频率限制
- 按需查询字段
- restful分页