NestJS-从其他服务创建业务对象

问题描述 投票:0回答:1

如今,我正在玩NestJS,并试图了解NestJS世界的最佳实践。

根据官方文档,我为名为“ Cat”的业务对象创建了service / dto / entity / controller。

(也使用SequelizeJS)

cat.entity.ts
@Table({
  freezeTableName: true,
})
export class Cat extends Model<Cat> {
    @AllowNull(false)
    @Column
    name: string;
    @Column
    breed: string;
}



create-cat.dto.ts
export class CreateCatDto {
    @IsString()
    readonly name: string;
    @IsString()
    readonly breed: string;
}


cat.service.ts
export class CatService {
    constructor(@Inject('CAT_REPOSITORY') private readonly CAT_REPOSITORY: typeof Cat) {}
    async create(createCatDto: CreateCatDto): Promise<Cat> {
        const cat = new Cat();
        cat.name = createCatDto.name;
        cat.breed = createCatDto.breed;

        return await cat.save();
    }
}

现在,我可以向控制器发出POST请求,并成功创建Cat对象。但是我想从其他服务创建一个“猫”,create()方法仅使用我不能/不应该初始化的CreateCatDto(它是只读的)。

如何通过其他服务呼叫create(createCatDto: CreateCatDto)?您如何使用NestJS处理此类要求?我是否应该再创建一种类似createFromEntity(cat: Cat)的方法并使用它?

node.js typescript nestjs
1个回答
0
投票

尝试一下:

const cat: CreateCatDto = { name: 'Miau', breed: 'some' };
© www.soinside.com 2019 - 2024. All rights reserved.