728x90
반응형
기본적인 cats 모듈,컨트롤러,서비스를 만들고 schemas 폴더를 다음과 같이 옮긴다.
$ nest g module cats
$ nest g co cats
$ nest g s cats
cats.module.ts 파일을 수정해준다.
cats.module.ts
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
import { Cat, CatSchema } from './schemas/cat.schema';
@Module({
imports: [MongooseModule.forFeature([{ name: Cat.name, schema: CatSchema }])],
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {}
그 다음 지정된 스키마를 @InjectModel() 데코레이터를 사용하여 CatService에 삽입한다.
cats.service.ts
import { Model } from 'mongoose';
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Cat, CatDocument } from './schemas/cat.schema';
import { CreateCatDto } from './dto/create-cat.dto';
@Injectable()
export class CatsService {
constructor(@InjectModel(Cat.name) private catModel: Model<CatDocument>) {}
}
아직 DTO파일을 안 만들었기 때문에 에러가 뜬다. DTO파일을 작성해보자.
$ npm i class-validator class-transformer
create-cat.dto.ts
import {IsString, IsNumber} from 'class-validator'
export class CreateCatDto {
@IsString()
readonly name: string;
@IsNumber()
readonly age: number;
@IsString({each:true})
readonly breed: string;
}
이제 Contoller를 작성해보자.
cat.controller.ts
import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service';
import { Cat } from './schemas/cat.schema';
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}
}
여기까지 cats모듈과 dto를 만들어보았다.
728x90
반응형
'Back-End > Nest.js' 카테고리의 다른 글
Nest.js | MongoDB | Create (0) | 2021.10.06 |
---|---|
Nest.js | MongoDB | Find (0) | 2021.10.06 |
Nest.js | MongoDB | Schema (0) | 2021.10.06 |
Nest.js | E2E TESTING | PATCH and DELETE (0) | 2021.09.30 |
Nest.js | E2E TESTING | Testing GET movies id (0) | 2021.09.30 |