분류 전체보기
-
JWT와 로그인 서비스& 순환 참조 모듈FrameWork/Nest.js 2022. 7. 3. 15:41
1. 요청이 들어온다. 2. Globally bound middleware 3. Module bound middleware 4.Global guard 5.Controller guard 6.Route guard 7. Global intercceptors (pre-controller) 8. Controller intercceptors (pre-controller) 9. Route intercceptors (pre-controller) 10. Global pipes 11. Controller pipes 12. Route pipes 13.Route parameter pipes 14.Controller (method handler) 15.Service(존재한다면) 9. Route intercceptors (pos..
-
Nest.js 개요 및 객체 지향 디자인 패턴 3 (Exception filter & Pipes)FrameWork/Nest.js 2022. 6. 20. 14:37
Exception filter 매칭 url이 되지 않은 아무 404 entrypoint로 들어갈 경우 Nest.js 만의 규칙으로 자동으로 "statusCode","message","error"내용을 요소로 가지는 객체를 반환한다. 실제로 서비스에 사용할 때 추가 적인 정보를 넣어서 응답받고 싶다면 어떻게 해야할까? HttpException Nest.js에서 Http에 대한 error는 제공하는 interface인 HttpException으로 처리를 한다. 괄호 안에 error message와 status를 넣으면 된다. Exception 처리가 있다면 exception 처리가 하나로 모여서, 재사용성 고려 => 필터링 => response로 반환 Exception filter를 적용하는 2가지 방법 1..
-
Nest.js 개요 및 객체지향 디자인 패턴 3 (Nest Middleware)카테고리 없음 2022. 6. 19. 22:05
미들웨어 미드웨어는 라우터 핸드러 이전에 호출되는 함수 입니다. 미들웨어 함수는 요청 및 응답 객체에 엑세스 할 수 있으며 next(),애플리케이션의 요청/응답 주기에서 미들웨어 함수에 접근 할 수 있다. 미들웨어는 각각 순서가 존재한다. import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Response, NextFunction } from 'express'; @Injectable() export class LoggerMiddleware implements NestMiddleware { use(req: Request, res: Response, next: NextFunction) { console.log('Requ..
-
Nest.js 개요 빛 객체지향 디자인 패턴 2 (Modules, 캡슐화)FrameWork/Nest.js 2022. 6. 19. 17:24
Module 구성 app.module.ts가 하는 역할 app.module.ts에서 import 하게 되면, 각각 CatMoule과 UsersModule에서 export한 인스턴스(상품)들을 AppModule에서 사용 할 수 있게된다. 즉 AppController와 AppService에서 사용할 수 있게된다. 캡슐화 기본적으로 AppController에서 appService:AppService를 주입을 받았다. 그외 에도 catService:CatService 같은 것을 주입 받아서 사용할 수 있는데 ,지금 구조에서는 catService:CatService를 주입받을 수 없다 => 모듈은 기본적으로 공급자를 캡슐화 한다. 그래서 export를 하지 않는 공급자는 사용할 수 없다. 그래서 cat.modul..
-
Nest.js 개요 및 객체 지향 디자인 패턴 1(DI, Provider)FrameWork/Nest.js 2022. 6. 19. 16:17
JavaScript와 TypeScript의 코드를 검사해주는 역할이다. 즉 eslintrc.js는 검사 기준이 되는 규칙을 적어 놓은 것이다. package.json에 들어 가서 확인해보면, Nest.js에 맞게 elint 추가 pulin도 모두 추가가 되어 있다. NestJS구조&Controller 패턴 전체적으로 Nest.js는 module 단위로 이동을 한다. 각각 controller나 service가 하나의 class이고, 그 class가 레고 처럼 결합을 해서 하나의 module안에 속하게 된다. 그리고 그러한 module들이 여러개가 있고, 이것들이 하나의 module로 합쳐져서 main.ts에서 실행이 되는 구조이다. Providers & 의존성 주입(DI) nest.js 같은 경우 AppC..
-
Nest.js Api만들기 3 (@Query )FrameWork/Nest.js 2022. 6. 17. 10:24
나만의 모듈만들기 가장먼저 할 것은 url을 가져오고, function을 실행하는 파일을 만드는 것이다. 즉 controller를 만들어야 한다. Nest.js에는 이미 훌륭한 cli가 설치되어 있다. nest 명령어를 통해서 확인하면, 이용할 수 있는 훌륭한 것들을 많이 가지고 있다. 그 예) 중 하나는 generate(생성)이다. 해당 커맨드 라인으로 Nest.js의 거의 모든 것을 생성할 수 있기 때문이다. *CLI(Command-line interface,커맨드 라인 인터페이스) : 명령어 인터페이스는 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상화 작용하는 방식을 뜻한다. 첫 번째로 생성할 것은 새로운 controller이다. 위 그림과 같이 nest 명령어로 명령을 하고 controll..
-
Nest.js Api만들기 2 (Controller)FrameWork/Nest.js 2022. 6. 16. 14:51
Controller Nest.js 어플리케이션은 main.ts 파일에서 시작한다. 위 그림은 코드 처럼 하나의 모듈에서 어플리케이션을 생성한다. AppModule은 모든 것의 root module같은 것이다. module은 어플리케이션의 일부분이다. 한가지 역학을 하는 앱으로도 볼 수가 있는데, 예) users 모듈 - 인증을 담당하는 어플리케이션 photos 모듈 - 사진을 담당하는 어플리케이션 videos 모듈 - 비디오를 담당하는 어플리케이션 controller url을 가져오고 함수를 실행하는 것이다. express의 라우터 같은 존재이다. controller의 특정 함수에 @Get 이 붙어 있는 것을 볼 수 있는데, express의 라우터 역할을 한다. controller는 url로 요청을 받는..
-
Nest.js Api만들기 1(Project Setup,Overview)FrameWork/Nest.js 2022. 6. 16. 11:36
Project Setup npm i -g @nestjs/cli nest new git init git Nest.js가 구성한 Project Architecture에서 제공하는 것 nest-cli.json package.json "script" "dependencies" , "devDependencies" test, main, service, module, controller 모든 것이 제대로 작동하는지 테스트하기 위해서, package.json을 확인해 보자 > npm run start:dev 명령어로 인해 Nest.js가 시작 될 것이다. 위 와 같은 log가 뜨면서 해당 프로젝트가 정상적으로 동작 했음을 확인할 수 있다. Nest.js 프로젝트를 생성할 때 지정되는 기본 port인 3000을 통해 접..