我正在学习 Nestjs - TypeORM,下面是提供者的代码
export const RoleProvider = [{
provide: 'ROLE_PROVIDER',
useFactory: (connection: Connection) => connection.getRepository(RoleEntity),
inject: ['DATABASE_CONNECTION']
}
]
现在,我正在尝试通过实现装饰器将此提供程序开发为动态的
export const PrepareProviderName = (target: Object) => {
console.log('prepare provideer name', target, target['databaseProvider']);
var original = target['entity'];
console.log('>',typeof target['entity']);
return [
{
provide: target['name'],
useFactory: async (conn: Connection) => await conn.getRepository(original.prototype),
inject: target['dataseProvider']
}
]
}
上面是装饰器
下面是实体 - 模块代码
@Entity({ name: 'roles' })
export class RoleEntity extends SowBaseEntity {
@Column({ type: 'varchar' })
Name: string;
}
@Module({
controllers: [UserController],
providers:
[...databaseProvider,
...PrepareProviderName(
{
name: "ROLE_PROVIDER",
databaseProvider: ['DATABASE_CONNECTION'],
entity: RoleEntity
}
),
RoleProfile,
UserService,
AppLogger]
})
export class RoleModule { }
@Entity({ name: 'roles' })
export class RoleEntity extends SowBaseEntity {
@Column({ type: 'varchar' })
Name: string;
}
现在我面临错误/阻止程序,我无法将实体按原样传递到存储库。任何人都可以帮助修复它