typeorm_如何评价TypeORM?

最近在自己的框架集成了 Typeorm,Typeorm 给我感觉很清爽,不管是接口定义,还是代码实现特别易懂,可读性很高。如果你了解过其它 orm 框架,学习成本很低。另外,与自己的框架集成也特别简单。

Typeorm 是一个较新的框架,功能的完整度还不够,一些高级功能还缺少,经常用的功能还算可以。不过,更新还是挺积极的,未来会越来越完善。

Typeorm 没有历史包袱,又借鉴了前人的经验,走得很快。技术栈很新,一开始就使用 ts 开发,很多地方使用了装饰器,与 jpa 的设计很像,如果你了解 jpa,会特别有亲切感。

Typeorm 对 Serverless 场景的支持有待优化,在数据库重链接方面有些问题待解决。

以下是自己框架集成后的开发体验:(AOP 事物管理,感兴趣可以看看我的集成方案:https://github.com/cellbang/malagu)

import { Controller, Get, Param, Delete, Put, Post, Body } from '@malagu/mvc/lib/node';

import { Transactional, OrmContext } from '@malagu/typeorm/lib/node';

import { User } from './entity';

@Controller('users')

export class UserController {

@Get()

@Transactional({ readOnly: true })

list(): Promise {

const repo = OrmContext.getRepository(User);

return repo.find();

}

@Get(':id')

@Transactional({ readOnly: true })

get(@Param('id') id: number): Promise {

const repo = OrmContext.getRepository(User);

return repo.findOne(id);

}

@Delete(':id')

@Transactional()

async reomve(@Param('id') id: number): Promise {

const repo = OrmContext.getRepository(User);

await repo.delete(id);

}

@Put()

@Transactional()

async modify(@Body() user: User): Promise {

const repo = OrmContext.getRepository(User);

await repo.update(user.id, user);

}

@Post()

@Transactional()

create(@Body() user: User): Promise {

const repo = OrmContext.getRepository(User);

return repo.save(user);

}

}

Malagu 官方技术交流 QQ 群:1013685855

Malagu 官方技术交流钉钉群:31992376

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值