Pipe은 무엇인가? 파이프는 @Injectable() 데코레이터로 주석이 달린 클래스입니다. 파이프는 1) data transformation 과 2)data validation을 위해 사용됩니다. 파이프는 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동합니다. Nest는 메소드가 호출되기 직전에 파이프를 삽입하고 파이프는 메소드로 향하는 인수를 수신하고 이에 대해 작동합니다. Client --- post Request { "title":"hello"} ------> Pipe - data transformation, data validation | | | | | | 실패 | | 통과 | | | @Get() Route Handler{ Client
DTO ( Data Transfer Object) DTO는 무엇인가? 계층간 데이터 교환을 위한 객체. DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다. DTO는 데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체라고 볼 수 있습니다. interface나 class를 이용해서 정의될 수 있습니다. (클래스를 사용하는 것을 nest.js에서 추천한다.) 왜 DTO를 사용하는가? - 데이터 유효성을 체크하는데 효율적이다 - 더 안정적인 코드로 만들어준다. (타입스크립트의 타입으로도 사용된다.) Nest.js에서 데이터 처리의 흐름을 보면... board 를 위한 property들을 여러 곳에서 사용하고 있다. (title, description... ) ..
DI (Dependecy Injection) - 종속성 주입 컨트롤러에서 서비스를 사용하기 위해서는 종속성을 주입해줘야 한다. @Controller('board') export class BoardController{ constructor(private boardsService: BoardsService) {} @Get('/:id') getBoardById(@Param('id') id: string): Board{ return this.boardsService.getBoardById(id); } } 위의 코드를 보면 BoardService 를 Constructor 클래스에서 가져오고(Injected) 있습니다. 그런 후에 Private 문법을 사용하고 있다. 이렇게 해서 boardsService를 정의해..
Controller / Handler / Service / Repository 정리 Controller 란? 컨트롤러는 들어오는 요청을 처리하고 클라이언트에 응답을 반환합니다. 컨트롤러는 @Controller 데코레이터로 클래스를 데코레이션하여 정의됩니다. @Controller('/boards') export class BoardsController{ } 데코레이터는 인자로 Controller 에 의해서 처리하는 경로를 받습니다. @Controller('boards') export class BoardsController { constructor(private boardsService: BoardsService){} @Get() getAllBoard(): Board[]{ return this.boards..
Express는 라우팅을 편하게 하려고 사용해요. 라우팅이 클라이언트에서 보내주는 주소에 따라 다른 처리를 하는 것이라고 말했죠 여기서 실제로 처리하는 녀석이 '미들웨어'함수에요 . 그래서 Express는 미들웨어 함수로 구성되어 있다고 말하는 겁니다. 미들웨어는 크게 4가지 유형이 있어요 1. application (app) 미들웨어 2. router 미들웨어 3. error 처리 미들웨어 4. third-party 미들웨어 1. application (app) 먼저 app 미들웨어는 어플리케이션 전역에서 처리가 가능한 미들웨어로 어플리케이션 자체에 request가 발생할 때마다 실행돼요 app.use() app.METHOD() 이 둘의 차이 주목!! app.use('/index')는 /index 로의..

Express를 간단하게 설명하면 라우팅을 쉽게 할 수 있도록 도와주는 프레임워크입니다 라우팅을 편하게 하려고 쓰는 겁니다 !!!! *라우팅 : 클라이언트에서 보내주는 주소에 따라 다른 처리를 하는 것을 말해요 var express = require(‘expess’) // express 모듈을 불러오고 var app = express() // express객체 생성한 후 변수 app에 넣어줍니다. 변수app을 가지고 express 프레임워크의 기능들을 사용할 수 있습니다. Express App 은 여러 개의 미들웨어가 결합되어 있는 형태입니다. 미들웨어는 중간에서 어떤 동작을 해주는 프로그램인데 Express에선 그냥 요청과 응답 사이에서 어떠한 처리해주는 함수라고 생각하시면 돼요. 어떤 요청은 미들웨어..
아주 상세하게 적어놨다 ~ const http = require('http'); // nodejs는 자바스크립트 런타임(javascript Runtime)입니다 . // 일단 자바스크립트 '실행기'라고 생각하시면 됩니다. // 예전에 javascript는 html문서 안에 종속되어 있었는데, // nodejs 덕분에 독립적으로 활용할 수 있습니다 . // (터미널에 node sample1치면 자바스크립트 코드 실행되잖아요ㅋㅋ 전에는 html문서 태그 안에서 // html */ // 암튼 근데 nodejs를 흔히 서버라고 하잖아요 ~ (자바스크립트 런타임이라고 안하고) // 그건 저 위의 http모듈 덕분이에요 ~!! // http모듈 안에 있는 함수들을 사용하면 서버 역할을 하는 프로그램을 만들 수 있어..