请问在做node项目时操作数据库使用orm有什么好的推荐吗或者好的项目,可以分享下,谢谢
我之前一直是手写的sql,考虑到注入问题被大家一直诟病,所以在找新的解决方案,最近在了解sequelieze
@xwadh 去了解下 typeorm ,比 seq 好用100倍~
sequelieze不错
js就sequelize ts就typeorm
@xwadh 如果你不喜欢 orm 可以考虑 query builder 。比如 knex。 正在扩展一个 基于 knex 的轮子。
@xwadh 手写sql也没问题啊,预编译不就好了。 就是有些场景手写也不是很方便,比如批量插入啥的。 本人现在就是简单的查询,更新,删除以及插入和批量插入用ORM,其他情况手写SQL。
@zuohuadong 你简单的说一下优点,解决的痛点问题,然后我认真去看一下。
@TimLiu1 链接都发给你了,咋能懒到这地步? 你用不用跟我有关系么?
轮子月的 Toshihiko 考虑下,虽然没 Sequelieze 功能多,却功能简化很多。
轮子月的 Toshihiko 考虑下,虽然没 Sequelieze 功能多,却功能简化很多。
@zuohuadong 最主要是对你没信任度啊,周围的人都没接触过,你推荐的你要解释啊,这是一个互相成长的圈子
@TimLiu1 别人说再多也没用,自己对比就知道了。 另外,typeorm 是 ts 写的~
@zy445566 怎么防注入的呢,简单的说下解决方法呢
@zuohuadong typeorm的话需要去搞ts那套了吧
@waitingsong 期待,我还是比较喜欢手写
@mapleincode 好的,谢谢,我去了解下
@xwadh 也支持 js ,但 ts 装饰器非常好用。
@xwadh @zuohuadong 新鲜出炉的轮子来了了欢迎食用: https://www.npmjs.com/package/kmore 基于 Knex 扩展了一点功能: 从 DB 表类型中提取表名创建表名对象,用于快速访问表。当然也支持手写 raw sql (db.dbh == knex)。 文档
@waitingsong 用 ts ,又不用装饰器,真的很别扭。~
顺便推荐个 : prisma ,以及我们在做的 magnus 自动生成…
@zuohuadong 看了下 prisma , 很强大。
至于装饰器,不同业务场景有不同需求。 我们的核心项目一百多库表,需求是:
- 单表可快速访问
- (数十)多表连接可能需要手写 sql
- 不允许自动化 DDL,任何表结构变化必须手动执行。
对于单表访问用不上装饰器,多表复杂关联手写sql更是连orm都不可能用(被 mybits 的实体类坑过)。 目前觉得 query builder 应该更适合些。
其实ORM和防止注入没啥关系, 不管用啥ORM,都要面对如何写sql的问题。 只不过使用ORM后,把这个锅甩给了ORM。 MySQL的驱动不是自带防止注入的功能吗?
sequelieze 这个 ORM 不好,很多报错莫名奇怪