用途:这是 @nestjs-crud 的 v1 到 v2(含 v2 内部小版本)升级操作手册,只讲升级差异,运行时细节见 nestjs-crud 技能。想留在 v1 可锁 ^1.0.2。
主要变更:v2.0 是统一破坏性发布,核心是把字段校验从黑名单正则改为按适配器列来源的严格白名单,?sort/filter/search/fields 中的未知字段或未在 @Crud 注册 join 的关联字段直接返回 400,且无退出开关。多个子类内部方法被删除(setSearchCondition、setJoin、checkSqlInjection、mapSort 等),自定义 QueryTranslator 必须补 count() 与 findOneOrFail();MikroORM 子类不得缓存 em,需每次调用 this.getEm()。类型方面 Drizzle 的 protected db 由 any 收紧为 DrizzleClient,MikroORM 公共签名改为泛型。行为上默认启用 Logger,@CrudAuth 的 persist 键运行时校验,updateOne/replaceOne/deleteOne 在 READ COMMITTED 下包装读改写事务,配置 cache 但未接 CacheStrategy 会抛错,Swagger 默认文案与 operationsMap 结构变化。
版本递进:v2.1 把 Prisma peer 收窄到 v7,需要驱动适配器与 prisma.config.ts;v2.1.1 为安全与死代码补丁;v2.2.0 增加统一缓存 API 与可选游标分页,均为附加功能。
使用方式:先跑资料中的 grep 审计命令(查询参数、子类覆写、translator、em 缓存、swagger 内部导入、persist 键、cache 选项等),按命中表逐项处理;Node 需 >=22.12,否则安装被拒。
限制:资料未提供具体价格、平台与效果数据;多数条目标注为手册条目而非实测结论。