FrameWork
-
Nest.js Exception FilterFrameWork/Nest.js 2022. 7. 11. 16:51
Exception Filters service의 형태의 따라 errorMessage를 custom해 줄 필요가 발생할 수 있다. Error Message Custom Error Message Overriding HTTP Exception 할 때 마다 success 속성이 동일하게 들어가고 message형식만 달라지는 형식 만들고 싶다면 각기 다른 url에 매칭된 함수마다 오버라이딩된 HTTP Exception을 반복적으로 적어 주어야한다. Exception 처리들이 어느 구간에서 모아서 처리할 수 있다. 즉 filtering을 겉쳐서 재사용성을 높인 형태에서 Response로 반환하여 사용할 수 있는 것이다. Http-Exception Filter(provider side) 위 코드에 있는 respons..
-
Nest.js Logger Middleware(provider,consumer)FrameWork/Nest.js 2022. 7. 10. 15:34
어떤 대상이 어떤 것을 요청했는지 출력해주는 middleware nest g middleare Middleware 공급자 생산 DI가 가능하기 때문에 @Injectable 데코레이터가 붙어있다. express와 비슷하게 use() 메소드를 통해 middleware를 사용할 수 있다. req: Request안에는 요청하는 대상에대한 정보가 다 담겨있다. Middleware를 DI하는 방법 @Module()에서는 middleware를 위한 consumer로써의 사용을 표시하기 위한 공간이 없기 때문에 configure() module의 메서드를 사용해서 middleware 사용을 표시해주어야 한다. 또한 middleware를 consumer가 되는 module은 NestModule 인터페이스를 구현해야한다...
-
Nest.js-TypeOrm 관계FrameWork/Nest.js 2022. 7. 7. 15:13
typeorm-model-generator 설치 npm typeorm-model-generator npm install -g npx entities 생성 npx typeorm-model-generator -h localhost -d tempdb -u sa -p 3306 -x password -e mariadb Workspace가 회사 단위라면, Channel들은 부서 단위이다. 그러므로 Workspace하나가 Channel 여러개를 가진다. Workspace 시점에서 보면 Workspace - Channel은 1:n 관계 즉 @OneToMany 관계이다. 관계를 설정할 때는 관계를 맺느 상대 table에도 똑같이 설정해주어야 한다. 따라서 Channel 시점에서 Channel - Workspace의 n:..
-
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 개요 빛 객체지향 디자인 패턴 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..