【发布时间】:2019-01-30 08:08:35
【问题描述】:
我正在尝试使用 Nest.js 和 TypeORM 构建一个项目。我喜欢 TypeORM 中的Active Record approach
我定义一个实体如下,带有一些静态辅助方法:
export class Book extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
description: string;
static async createNew(attributes: BookDto): Promise<Book> {
const entity = new Book();
entity.name = attributes.name;
entity.description = attributes.description;
return entity.save();
}
static async findByName(name: string): Promise<Book> {
return Book.findOne({
where: { name },
});
}
}
我正在尝试按照 Nest 文档中的模式将其注入我的服务:
@Injectable()
export class BookService {
constructor(
@InjectRepository(Book)
private readonly bookRepository: Repository<Book>,
) {}
async create(bookAttrs: BookDto): Promise<Book> {
return Book.createNew(bookAttrs);
}
}
但正如您在我的服务中看到的,我只使用静态方法。在这种情况下,我什至需要注入依赖项吗?我应该遵循更好的模式吗?
【问题讨论】: