nestjs(6)
-
[Troubleshooting] NestJS 'an unknown value was passed to the validate function' 오류
문제 원인 NestJS에서 데이터 전송 객체(DTO)를 사용해서 POST를 요청하니 다음과 같은 오류가 발생했다. { "statusCode": 400, "message": [ "an unknown value was passed to the validate function" ], "error": "Bad Request" } createUserDto의 코드는 다음과 같다. export class CreateUserDto { name: string; email: string; } 해결 방안 1. @nestjs/common을 9.3.9으로 업데이트 @nestjs/common 버전을 업그레이드 하고 다시 테스트를 진행하니 다음과 같이 떴다. { "statusCode": 400, "message": [ "prope..
2023.03.08 -
[Nest.js] NestJS 컨트롤러 알아보기 - 2
지난 시간에 이어 오늘은 NestJS의 컨트롤러에 대해 자세히 알아본다. 먼저 컨트롤러를 생성할건데, nest CLI를 이용해서 컨트롤러를 생성하는 두 가지 방법이 있다. 첫번째는 컨트롤러만 생성하는 것이고, nest g controller Users 두번째는 만들고자 하는 리소스의 CRUD 보일러플레이트 코드를 한 번에 생성하는 것이다. 이 글에서는 후자의 방법으로 컨트롤러를 생성해보겠다. nest g resource Users 서버를 실행하면 어떤 라우팅 패스를 통해 요청을 받을 수 있는지 콘솔 로그를 통해 확인할 수 있다. [Nest] 33720 - 2023. 03. 06. 오후 3:42:37 LOG [RoutesResolver] UsersController {/users}: +1ms [Nest] ..
2023.03.06 -
[Nest.js] NestJS 컨트롤러 알아보기 - 1
지난 포스팅에서는 NestJS 설치법을 알아보았는데, 이번 포스팅에서는 NestJS의 컨트롤러에 대해서 알아본다. 컨트롤러? 뭐하는 친구야? Nest의 컨트롤러는 MVC 패턴에서 말하는 그 컨트롤러를 말한다. 들어오는 요청(request)을 받고 처리된 결과를 응답(response)로 돌려주는 인터페이스 역할을 한다! 컨트롤러는 엔드포인트 라우팅(routing) 메커니즘을 통해 각 컨트롤러가 받을 수 있는 요청을 분류한다. 컨트롤러를 잘 사용하면 구조적이고 모듈화된 소프트웨어를 작성할 수 있게 된다. 라우팅 소스 코드를 살펴보자. // app.controller.ts import { Controller, Get } from '@nestjs/common'; import { AppService } from ..
2023.03.05 -
[Nest.js] package.json 설명할 수 있어?
누군가 package.json이 뭐냐고 물어봤을 때 나는 다음과 같이 대답할 것 같다. 그거.. 프로젝트에 대한 설정파일? npm install 할 때 어떤 패키지들을 다운받을 건지 명시해두는 파일? 수 개월을 사용을 했지만 구체적으로 설명을 하지는 못했다. 잘 알고 잘 쓸 수 있도록 필요한 `package.json` 한번 제대로 톺아보자. NPM NestJS는 Node.js를 기반으로 하므로 npm이라는 패키지(또는 라이브러리) 관리 시스템을 사용할 수 있다. 누구나 자신이 만든 Node.js 기반 라이브러리를 등록하여 다른 사람들이 사용하게 공개할 수 있다. 개발에 필요한 라이브러리가 있다면 간단한 명령어를 통해 npm으로 설치하면 된다. package.json Nest 프로젝트를 처음 생성하면 pa..
2023.01.09 -
[Nest.js] NestJS 설치하기
NestJS 설치 1. Node.js 설치 NestJS는 Node.js를 기반으로 한다. 따라서 먼저 Node.js 공식 사이트 다운로드 페이지에서 자신에게 맞는 버전의 Node.js를 설치한다. 안정 버전인 LST를 선택하는 것을 권장 https://nodejs.org/ko/download/ 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. NestJS 프로젝트 생성 nestjs/cli 설치 Node.js를 설치하면 기본적으로 npm(Node Package Manager)이 함께 설치된다. npm은 라이브러리들을 쉽게 설치, 삭제할 수 있게 해준다. 간단한 NestJS 서..
2023.01.07 -
[Nest.js] Express가 좋을까, NestJS가 좋을까
NestJS의 장점 Node.js의 유연함을 그대로 가져가면서도 프레임워크 내에 유용한 기술을 이미 다수 구현 NestJS는 Node.js에 기반을 둔 웹 API 프레임워크로서 Express 또는 Fastify 프레임워크를 래핑하여 동작 Express와 Fastify 모두 Node.js를 쉽게 사용하기 위해 만들어진 프레임워크 NestJS는 기본 설치 시 Express를 사용 Express가 가장 널리 사용되고 있고 수많은 미들웨어가 NestJS와 호환되기 때문 Node.js vs NestJS Node.js 손쉬운 사용 뛰어난 확장성 But, 과도한 유연함으로 인해 결과물 소프트웨어의 품질이 일정 X 알맞은 라이브러리를 찾기 위해 사용자가 많은 시간을 할애해야 함 NestJS 데이터베이스, 객체 관계 매..
2023.01.07