-
简介:如果说TS全栈后端开发最重要的两个框架,除了nestjs就是持久层框架了,这里主要看下Typeorm(java中常用的就是mybatis,springdatajpa,hebernite了)
-
先回顾下ORM的概念:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。
-
实体类:和java中实体类定义形式也是类似的,这种都是规范化的东西,IDEA里有直接根据表结构生成实体类的工具,vscode应该也有类似插件,主要是注意下字段注解,特别是id主键生成策略的。
-
然后看下DTO:就是个对数据的校验。Java中我到没用过,反正这种如VO,DO,DTO,PO的划分也不是必要的,在这些东西出来前,直接用model也玩的转。尤其是你项目不大的时候,多几层反而增加了复杂度。
-
接下来看nestjs搭配使用的DAO框架,引用3r站长pincman的评价:整体来说4个ORM都目前处于玩具阶段
- typeorm:功能比较全,适合大型复杂应用,与laravel、doctrine、jpa等成熟ORM相似,但是大部分orm该有的都没有,魔改起来稍微好操作点,官方基本属于停摆,BUG不处理
- prisma:适合小博客或简单后端,企业网站等等,使用简便,在需求不复杂的情况下可以作为demo版本的通用orm,缺点也比较多,大部分ORM该有的也都没有,无法魔改,写插件是唯一的方法
- drizzle:东西很好,很简单,但是有一个致命问题,几乎无封装,相当于纯写sql,代码比所有ORM都清晰,就是太原始了,写起来累死个人,适合数据库关系非常简单的应用
-
目前还是选typeorm重点看下吧 开始入门 | TypeORM 中文文档
- 从代码看就是在持久层构建下sql查询语句,然后service根据业务加上where条件
- 其他基础的save,delete方法也都有,总体不难理解
程序员提升&&转型交流群:954614622
文章代码出自3r教室,想报名的可以找我有内部优惠