본문 바로가기
반응형

NestJS5

[NestJS] must be a number conforming to the specified constraints - body dto 타입 에러 해결 [ 문제점 ] Nest Js에서 post나 put을 할 때 body에 데이터를 담아서 보낸다. 이때 dto로 검증을 하는데 id는 number을 받기 위해서 다음과 같은 dto를 만들었다. import { IsNumber, IsOptional, IsString } from 'class-validator'; export class UpdatePlanDto { @IsNumber() readonly id: number; @IsOptional() @IsString() readonly date: string; } 이렇게 만들고 요청을 보내니 다음과 같은 400오류가 뜨면서 작동하지 않았다. [ 해결 방법 ] 이러한 오류가 나온 이유는 message에도 설명해주지만 id의 type이 number가 아니라는 것이다... 2022. 6. 11.
성장하는 나. 그런데 고통을 곁들인 (database migration) 개발 이야기는 인스타 easy_develop에도 올라옵니다! DB migration 세팅 시작 DB 세팅으로 하루 반을 썼지만, 다시 migration 세팅으로 하루 반을 써버렸다. 이 시간 동안 분명히 성장했지만, 너무 큰 고통이 수반되었고 다음에는 이런 일을 겪지 않기 위해 기록한다. 이번에는 db migration 문제지만 작은 문제들이 엮여 있었다. ormconfig 연동, directory 이름, npm script 등 평소에는 잘 만지지도 않는 설정 파일들 이라서 문제라서 힘들고 많은 시간이 걸렸다. 이 과정에서 깨달은 빠르게 오류를 고치는 방법과 긴 시간이 걸린 근본적인 이유를 이야기해보려고 한다. 오류를 빠르게 해결하는 방법 당연하게 들리겠지만, 빠르게 오류를 고치는 방법은 오류 메시지를 .. 2022. 6. 11.
똑같은 실수를 하지 않기 위한 기록 개발 이야기는 인스타 easy_develop에도 올라옵니다! 지금까지의 백엔드 프로젝트 프로젝트 개수로 따지자면 fastapi, express, mongodb, postgres, MYSQL 등 많이 다루어 본 것 같지만 제대로 된 프로젝트는 없었다. 코드는 구조가 없이 엉망진창, db는 local과 production이 구분되지 않아서 엉망진창 등등…. 그래서 이번에는 nest로 파일구조를 강제하고 local, production도 구분 지어서 제대로 된 프로젝트를 시작하였다. 프로젝트의 시작 프로젝트의 첫 시작은 로컬 개발환경 세팅이다. 계획은 완벽했다. 로컬은 sqlite, production은 heroku의 postgres로 하고 환경변수를 설정해서 이를 구분 짓는다. 그러나 로컬환경인 sqlite.. 2022. 6. 11.
[NestJS] typeOrm migration 정리 typeorm 에서 database migration을 하기 위해서는 ormconfig에 마이그레이션 파일이 들어갈 위치를 지정해 주어야 합니다. root directory에 ormconfig.json파일에 써도 무방하지만 저는 develop 환경과 production 환경을 분리하기 위해서 ormconfig.ts파일을 만들고 환경변수 NODE_ENV에 따라서 두 환경을 분리하였습니다. import { ConnectionOptions } from 'typeorm'; const typeormConfig: ConnectionOptions = process.env.NODE_ENV ? { url: process.env.DATABASE_URL, type: 'postgres', synchronize: false, .. 2022. 6. 10.
[NestJS] Heroku, no pg_hba.conf entry for host, SSL off 해결하기 [문제점] TypeOrm과 Postgres를 사용해서 Nestjs db를 세팅하고 heroku에 배포하는 과정에서 문제가 발생했다. typeorm설정을 하고 배포를 하였더니 서버오류가 나서 heroku log를 살펴보았더니 다음과 같은 에러가 나왔다. ERROR [ExceptionHandler] no pg_hba.conf entry for host "", user "", database "", SSL off [해결 방법] postgres의 pg_hba.conf 파일에서 문제가 생긴 줄 알았으나 구글검색을 해보니 다른 원인을 알 수 있었다. typeorm에서 SSL설정을 해주면 문제는 해결된다. ormconfig.json에서 수정을 하거나 typeorm.forRoot 내부에서 바로 수정을 하면된다. 위의 .. 2022. 2. 12.
반응형