node的orm
发布于 5 年前 作者 xwadh 6664 次浏览 来自 问答

请问在做node项目时操作数据库使用orm有什么好的推荐吗或者好的项目,可以分享下,谢谢

23 回复

我之前一直是手写的sql,考虑到注入问题被大家一直诟病,所以在找新的解决方案,最近在了解sequelieze

@xwadh 去了解下 typeorm ,比 seq 好用100倍~

sequelieze不错

@TimLiu1 你这也是没看过 typeorm 吧

https://typeorm.io/#/ 右上角切换语言~

还有个比较牛皮的 :

https://www.prisma.io/

js就sequelize ts就typeorm

@xwadh 如果你不喜欢 orm 可以考虑 query builder 。比如 knex。 正在扩展一个 基于 knex 的轮子。

@xwadh 手写sql也没问题啊,预编译不就好了。 就是有些场景手写也不是很方便,比如批量插入啥的。 本人现在就是简单的查询,更新,删除以及插入和批量插入用ORM,其他情况手写SQL。

@zuohuadong 你简单的说一下优点,解决的痛点问题,然后我认真去看一下。

@TimLiu1 链接都发给你了,咋能懒到这地步? 你用不用跟我有关系么?

轮子月的 Toshihiko 考虑下,虽然没 Sequelieze 功能多,却功能简化很多。

轮子月的 Toshihiko 考虑下,虽然没 Sequelieze 功能多,却功能简化很多。

http://docs.toshihikojs.com/en/latest/

@zuohuadong 最主要是对你没信任度啊,周围的人都没接触过,你推荐的你要解释啊,这是一个互相成长的圈子

@TimLiu1 别人说再多也没用,自己对比就知道了。 另外,typeorm 是 ts 写的~

@zy445566 怎么防注入的呢,简单的说下解决方法呢

@zuohuadong typeorm的话需要去搞ts那套了吧

@waitingsong 期待,我还是比较喜欢手写

@mapleincode 好的,谢谢,我去了解下

@xwadh 也支持 js ,但 ts 装饰器非常好用。 image.png

相关试用: https://ruiming.me/typeorm-worth-a-try/

@xwadh @zuohuadong 新鲜出炉的轮子来了了欢迎食用: https://www.npmjs.com/package/kmore 基于 Knex 扩展了一点功能: 从 DB 表类型中提取表名创建表名对象,用于快速访问表。当然也支持手写 raw sql (db.dbh == knex)。 文档

@waitingsong 用 ts ,又不用装饰器,真的很别扭。~

顺便推荐个 : prisma ,以及我们在做的 magnus 自动生成…

https://github.com/notadd/magnus

@zuohuadong 看了下 prisma , 很强大。

至于装饰器,不同业务场景有不同需求。 我们的核心项目一百多库表,需求是:

  • 单表可快速访问
  • (数十)多表连接可能需要手写 sql
  • 不允许自动化 DDL,任何表结构变化必须手动执行。

对于单表访问用不上装饰器,多表复杂关联手写sql更是连orm都不可能用(被 mybits 的实体类坑过)。 目前觉得 query builder 应该更适合些。

其实ORM和防止注入没啥关系, 不管用啥ORM,都要面对如何写sql的问题。 只不过使用ORM后,把这个锅甩给了ORM。 MySQL的驱动不是自带防止注入的功能吗?

sequelieze 这个 ORM 不好,很多报错莫名奇怪

回到顶部