Web应用开发框架-egg进阶与实战(三)——总结之debug、日志、多进程、错误处理、多实例插件、多进程增强、实战-简易博客
第三章 EGG进阶与实战
- debug
- 日志
- 存储路径
- 开发环境默认
- 生产环境可以指定
- 日志分类
- error
- warn
- info
- debug
- none
- ctx.logger
- app.logger
- 切割
- 大小
- 时间
- 日
- 小时
- 性能
- 默认1秒写入一次
- 存储路径
- 多进程
- 相比nodejs原生 新增了一个agent的概念
- agent
- 应用场景
- 长连接
- 特点
- 出错master不会重启,需要时刻关注日志
- 应用场景
- 进程通信
- messenger
- 特点 挂载在 app 和 agent下面
- broadcast 所有人
- sendToApp
- sendToAgent
- sendRandom
- sendTo
- messenger
- 错误处理
- Try catch
- 问题: 只能catch当前事件循环的错误
- Ctx.runInBackground
- 注意: 一定要抛出error类型
- 统一异常处理的方式
- 500
- Config.onerror.all
- 中间件
- 404
- Config.notfound
- 中间件
- 500
- Try catch
- 多实例插件
- app.addSingleton
- 创建多实例数据库
- App.js 调用
app.addSingleton
- Config 配置数据库
- App.js 调用
- 动态 创建数据
- 远程获取配置
- app.mysql创建实例
- 创建多实例数据库
- app.addSingleton
- 多进程增强
- 每一个worker都和socket服务器进行连接, 造成n*m的问题
- agent连接,但是agent和worker的通信需要 master转发,效率低,不稳定
- agent和socket服务连接,但是 agent和worker会创建本地socket通道
- 核心思想
- Leader/Follower
- 来源于多线程
- Leader 和远程连接,通过内部的socket和woker通信
- Leader/Follower
- client抽象类
- 发布,订阅
- 调用类 (读取数据)
- 只是对类的抽象,随便你怎么实现
- 异常的处理
- leader死掉 follower会抢
- 心跳机制
- 实战- 简易博客
- mongoose
- 对mongoDb的抽象,类似jq
- schema
- 对字段的描述
- model
- 表的名称
- 正式开发
- 配置数据库
- 安装依赖 npm init egg —type=simple
- 安装插件 egg-mongoose
- 配置 plugin.js
- 配置 config.default.js
- 选择数据库 blog
- 设计schema
- 字段名
- content
- title
- app/model/posts.js
- return model class
- 字段名
- 设计路由, 数据库新增数据
- Route.resources
- new model
- Instance.save()
- 配置数据库
- mongoose
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/yd-ios/10731.html