0.5.3 • Published 6 years ago

@yjc/model-pattern v0.5.3

Weekly downloads
-
License
MIT
Repository
github
Last release
6 years ago

@yjc/model-pattern

用以规范模型层逻辑。\ 模型层即MVC中的“M”。对于一些纯后端的脚本,可能会没有“C”或“V”,但模型层逻辑很重,有必要划分清晰的业务层级。

分层参考了百度内部框架ODP。

当前只实现简单的功能,待实践充分后补充更多的功能。

用例1:使用数据库

src/demo/script/use-mysql.ts

用例2:扩展基类

src/demo/script/extend-base.ts

用例3:使用全局错误码

src/demo/script/use-error-codes.ts

模型层业务逻辑分层

src/demo/use-mysql目录结构为例。

  • pub model层通用类库,可同层调用。
  • dao 无业务逻辑原子操作,不可同层调用
    • 可调用pub
    • data-service调用。
    • 需继承基类ModelDao
  • data-service 主体业务逻辑封装。
    • 可调用pubdao
    • page-service调用。
    • 需继承基类ModelDataService
  • page-service 由外部调用的业务逻辑封装。
    • 可调用pubdata-service
    • 由外部逻辑调用。
    • 需继承基类ModelPageService

调用路径: dao > data-service > page-service >> External-Logic 不可跨层调用

目录结构生成脚本

cd @yjc/model-pattern
npm run mkdirs your-model-dir

ModelPageService.context

ModelPageService.context是跨层的上下文对象,在page-service实例化,透传至dao。\ 典型的场景是在page-service创建数据库连接,这个连接全流程复用,最后在page-service销毁。

ModelDao.mysql

ModelDao.mysql是封装后的MySQL连接池对象(用法参考mysql)。

引用的模块@yjc/mysql,从mysql2/promise改造而来。

ErrorCodes, ExternalError

  • defineErrorCodes 定义全局错误码。
  • assert 断言函数,抛出的错误对象包含ExternalError.eCodeExternalError.eTip,用于隐藏出错细节、对用户提供友好提示。
0.5.3

6 years ago

0.5.2

6 years ago

0.5.1

6 years ago

0.3.0

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.0-rc.2

6 years ago

0.2.0-rc.1

6 years ago

0.2.0

6 years ago

0.2.1

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago