SuperAPI AI 工具集

nestjs-crud-v1

编程与开发

查看项目

更新于 10-16 06:22

技能介绍

用途:在 NestJS 项目中集成 @nestjs-crud v1.0.x(旧版维护线),从单个 @Crud() 装饰器自动生成 RESTful CRUD 端点。新项目应改用 v2。

主要能力:提供三种适配器 TypeORM、Drizzle、MikroORM,可选前端查询构建器 @nestjs-crud/request。生成端点包括 getManyBase、getOneBase、createOneBase、createManyBase、updateOneBase、replaceOneBase、deleteOneBase、recoverOneBase。支持 23 个 CondOperator 查询操作符、过滤、排序、分页、关联加载、软删除恢复、DTO 校验组、序列化、Swagger 自动生成。可用 CrudConfigService.load() 设置全局默认值(需在 NestFactory.create 之前),@CrudAuth 按用户范围过滤与写入,@Override 覆盖生成路由。

必要用法:先选适配器安装,例如 npm install @nestjs-crud/core @nestjs-crud/typeorm;可选 npm install @nestjs-crud/request。v1 未完整声明 peer 依赖,需显式安装:core 需 class-validator、class-transformer;typeorm 适配器还需 typeorm、@nestjs/typeorm、@nestjs/common;drizzle 适配器还需 drizzle-orm(≥ 0.36.0)、@nestjs/common;mikro-orm 适配器还需 @mikro-orm/core(≥ 6.0.0)、@mikro-orm/knex(≥ 6.0.0)、@nestjs/common。控制器中使用 @Crud() 并实现 CrudController,服务分别继承 TypeOrmCrudService、DrizzleCrudService 或 MikroOrmCrudService。覆盖路由时用 @ParsedBody() 而非 @Body()。

适用场景:需要快速搭建标准 CRUD 接口的 NestJS 后端项目。

限制:v1 为维护线,仅修复补丁,新功能只在 v2;Drizzle/MikroORM 不支持 cache 选项;@CrudAuth 的 persist 键名拼写错误会被静默丢弃,可能导致写入鉴权绕过,需人工审计;MikroORM 需在每个方法内重新解析 EntityManager,避免请求间身份映射隔离失效;Swagger 需安装 @nestjs/swagger,否则自动跳过;maxLimit 需服务端设置;敏感字段和关联字段需显式排除或加入允许列表。缺少 peer 依赖时会报 TypeError: repo.createQueryBuilder is not a function 或 Cannot find module 'typeorm'。