在用Nestjs开发项目一段时间后发现Nestjs+typeORM虽然很有条理,让项目思路清晰,但是步骤繁琐而且重复非常多
如定义entity实例->定义tdo->定义service->定义controller
那么我只需要把重复的抽离出来,封装为npm包,那么nest开发效率开发效率大大提升
目前以提交初版,会持续优化更新(At present, the first version is submitted and will continue to be optimized and updated)
支持(apply)nodejs+typeorm+mysql
自动生成swagger文档(Automatically generate swagger documentation)
/*我的版本*/
"@nestjs/common": "^7.6.13",
"@nestjs/swagger": "^4.7.15",
"@nestjs/typeorm": "^7.1.5",
"mysql2": "^2.2.5",
"swagger-ui-express": "^4.1.6",
"typeorm": "^0.2.31"
npm包:nestjs-tyoeorm-crud
npm i nestjs-tyoeorm-crud
定义entity和tdo后,由typeorm注册后导入testService(After defining entity and tdo, import testService after registration by typeorm)
import { Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
import { TestEntity } from "@libs/db/models/materials/test/test.entity";
import { CrudService } from 'nestjs-tyoeorm-crud'
@Injectable()
export class TestService extends CrudService{
constructor(
@InjectRepository(TestEntity)
private readonly testRepository: Repository<TestEntity>,
) {
super(testRepository)
}
}
定义testController
import { Controller } from "@nestjs/common";
import { TestService } from "@libs/db/models/materials/test/test.service";
import { TestDto } from "@libs/db/models/materials/test/test.dto";
import { ApiTags } from "@nestjs/swagger";
import { CrudController, Crud } from 'nestjs-tyoeorm-crud'
@Controller('test')
@Crud({model: TestService, dto:TestDto})
@ApiTags("测试CRUD")
export class TestController extends CrudController{
constructor(
private readonly testService: TestService
) {
super(testService);
}
}
这样就快速生成CRUD接口了,测试接口是否有效(inspect)
运行nestjs后进入(Enter after running nestjs)http://localhost:3000/api-docs/#/
自动生成swagger文档(Automatically generate swagger documentation)
test
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。