728x90
반응형
먼저 main.ts 파일에 pipe를 추가한다.
main.ts
import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.useGlobalPipes(
new ValidationPipe({
whitelist : true,
forbidNonWhitelisted : true,
transform : true
})
)
await app.listen(3000);
}
bootstrap();
그다음 컨트롤러와 서비스를 바꿔주자. GetOne 메소드도 추가하였다.
cats.cantroller.ts
import { Controller, Get, Param, Post, Delete, Patch, Body, Query } from '@nestjs/common';
import { CatsService } from './cats.service';
import { CreateCatDto } from './dto/create-cat.dto';
import { Cat } from './schemas/cat.schema';
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}
@Get()
async getAll(): Promise<Cat[]> {
return await this.catsService.getAll();
}
@Get('/:id')
async getOne(@Param('id') catId: number): Promise<Cat[]> {
console.log(catId)
return await this.catsService.getOne(catId);
}
@Post()
async create(@Body() catsData : CreateCatDto) {
return await this.catsService.create(catsData);
}
}
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>) {}
async getAll(): Promise<Cat[]> {
return await this.catModel.find().exec();
}
async getOne(id:number) {
return await this.catModel.find({"id" : id});
}
async create(catsData: CreateCatDto) {
let latestId = await this.catModel.findOne();
return await this.catModel.create({...catsData, id : parseInt(latestId ? latestId.id : 0)+1});
}
}
생성할 때 id가 최근의 id +1 이 되게끔 하였다.
2번 생성한 뒤 postman으로 getAll()을 확인해보자.
mongoose에서 Create는 추가한 값을 그대로 반환해준다. 아주 성공적으로 id가 +1씩 되면서 잘 되었다.
배열 안에 잘 담겨서 반환된 것을 확인할 수 있다.
728x90
반응형
'Back-End > Nest.js' 카테고리의 다른 글
Nest.js | Swagger (0) | 2021.10.28 |
---|---|
Nest.js | MongoDB | PATCH and DELETE (0) | 2021.10.06 |
Nest.js | MongoDB | Find (0) | 2021.10.06 |
Nest.js | MongoDB | Model,Schema,Controller (0) | 2021.10.06 |
Nest.js | MongoDB | Schema (0) | 2021.10.06 |