关于nestjs:从-0-实现-Nest-Entity-Provider-CLI
前言Nest CLI 提供了一系列命令,能够帮忙开发者疾速初始化新的 Nest.js 我的项目,生成模块、控制器和服务等。 nest g res user生成的模块如下所示: tree useruser├── dto│ ├── create-user.dto.ts│ └── update-user.dto.ts├── entities│ └── user.entity.ts├── user.controller.spec.ts├── user.controller.ts├── user.module.ts├── user.service.spec.ts└── user.service.ts尽管生成了 user.entity.ts,但此时与 user.module.ts 模块却没有任何关联。个别还须要开发者手动去定义 provider 而后在 user.module.ts 中引入。如下所示: // provider.factory.tstype ctor = { new (...args: any): object }export const ProviderFactory = (provide: string | ctor, repository: ctor) => { return { provide, useFactory: (dataSource: DataSource) => dataSource.getRepository(repository), // DATA_SOURCE 就是 databaseProvider的Key // 通过在 inject 指明 Provider 的 token,能够在 useFactory 中注入值 inject: [DATA_SOURCE], }}// user.provider.tsimport { USER_PROVIDER } from '../constants/user.constants'import { User } from '../entities/user.entity'import { ProviderFactory } from '../../utils/provider.factory'export const UserProvider = ProviderFactory(USER_PROVIDER, User)在 user.module.ts 中应用 ...