NestJS - Создание бизнес-объектов из других сервисов - PullRequest
0 голосов
/ 29 сентября 2019

В настоящее время я играю с NestJS и пытаюсь понять лучшие практики мира NestJS.

Следуя официальной документации, я создал сервис / dto / entity / controller для моего бизнес-объекта под названием ' Cat '.

(также с использованием 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.Но я хочу создать 'Cat' из другого сервиса, и метод create() принимает только CreateCatDto, который я не могу / не должен инициализировать (он доступен только для чтения).

Как позвонить create(createCatDto: CreateCatDto) из других служб?Как вы справляетесь с такого рода требованиями с NestJS?Должен ли я создать еще один метод, например createFromEntity(cat: Cat), и использовать его?

1 Ответ

0 голосов
/ 29 сентября 2019

попробуйте это:

const cat: CreateCatDto = { name: 'Miau', breed: 'some' };
...