企业中Nodejs的使用场景:
1、 | BFF层实现多后端服务的数据聚合 |
2、 | 全栈开发前端基建项目:权限管理、监控、文档管理 |
3、 | SSR提升页面的用户体验 |
自建Nodejs框架:
1 | 强类型 | 可以将问题提前再开发阶段暴露,丰富的代码提示 |
2 | 依赖注入 | 体验了Angular便捷的依赖注入,希望有依赖注入能力 |
3 | 方便调试 | 希望开发阶段能够轻松调试接口,支持swagger这样的文档工具 |
4 | 模块划分 | 结合前端的模块化,我们的服务端也希望是模块化的组装模式 |
5 | 丰富的生态 | 既有第三方的可以用,同时,自研插件也比较方便 |
5 | 完整性一站式 | 希望框架能够帮助大部分同学一站式解决开发问题,减少第三方选型困扰 |
项目框架:
核心设计:
1、中间件 | 2、应用 | 3、模块 | 4、接口 | 5、服务 | 6、数据层 | 7、配置 | 8、异常 | 9、校验 | 10、调试 |
·保留koa的中间件 ·应用、接口、模块 |
·只有一个 ·类似于<root/> |
·业务单元模块 ·子模块 ·接口 ·接口 ·中间件 ·tasks任务 |
·又叫控制器 ·装饰器语法 |
·向上接口 ·向下数据 ·工具方法 |
·数据库交互 ·定义schema ·TypeORM/Sequelize |
·多环境 ·抽象类 ·抽象属性 ·Apollo |
·ajax result ·中间件 ·异常 |
·防攻击 ·中间件 ·Joi机制 ·class-validator |
|
url中间件 |
生命周期设计:
日志管理:
分布式链路跟踪:
服务监控:
配置中心:
业务模块:
业务场景BFF层:
REST概览:
利用HTTP描述URI资源:
研发流程:
BFF困境:
1、研发成本
2、流程繁琐
3、运维经验不足
对接serverless:
serverless带来的未来: