본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Node.js51

Nestjs 프레임워크 서버(패스포트, JWT) -9 # 패스포트(passport, 여권) 패스포트 라이브러리(프레임워크)는 로그인과 관련된 기능을 제공합니다. 패스포트(여권)는 자바에서의 시큐리티(security), 파이썬의 플라스크로그인(flask-login) 과 비슷한 로그인 관련 모듈(프레임워크)입니다. 이러한 로그인 프레임워크(라이브러리)를 사용하지 않고 기능을 구현하기 위해서 아래와 같은 패턴으로 작업을 합니다. * 로그인 요청 처리 1) 로그인 응답을 받는 메소드 2) 요청된 값을 가지고 데이터베이스 조회하는 메소드 3) 로그인 정보 기록(서버/클라이언트) 4) 로그인 결과 전달 이렇게 4단계로 로그인 요청이 완료되고 나면 이제 권한에 따른 기능 작업을 해 주어야 합니다. * 권한에 따른 페이지 접근 5) 로그인된 사용자면 접근 허용 6) 로그.. 2022. 8. 22.
Nestjs 프레임워크 서버(세션) -8 #세션(Session) 세션은 서버에서 사용자의 정보를 담을 수 있는 저장공간 입니다. nestjs에서도 다른 프레임워크와 마찬가지로 이러한 세션을 제공 합니다. Nestjs에서 세션을 사용하기 위해서는 아래와 같이 추가 모듈을 설치해야 합니다. npm i express-session npm i -D @types/express-session 가끔 볼 수 있는 패키지인 @types 으로 시작하는 모듈(라이브러리)은 개발시 필요한 기능 입니다. 대부분의 npm 모듈은 Type에 대한 정의를 포함하고 있지 않기 때문에 타입스크립트 기반으로 개발된 라이브러리에 대해서 코멘트나 정의를 볼 수가 없습니다. 그래서 이러한 @types로 시작되는 모듈을 추가 설치하여 개발시에 유용하게 사용됩니다. * 그래서 @type.. 2022. 8. 19.
Nestjs 프레임워크 서버(가드와 오류 필터) -7 #가드(Guard) 가드는 인터셉터와 비슷한 개념으로 컨트롤러에 동작하기 전 사용자가 정의한 행동을 실시 합니다. 가드의 목적은 주로 사용자의 권한(Authentication)을 확인하기 위한 기능으로 사용이 됩니다. 가드를 사용 하려면 CanActivate라는 인터페이스를 상속받아야 합니다. * 와...CanActivate..앵귤러랑 이름마저 같아! 먼저 가드를 생성하여 줍니다. * 파일이름 : app.일반가드.ts import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { Observable } from 'rxjs'; @Injectable() export class 일반가드 implements CanActiv.. 2022. 8. 12.
Nestjs 프레임워크 서버(인터셉터) -6 #인터셉터(Interceptor) 인터셉터는 컨트롤러가 동작하기 전에 사용자가 정의하는 행동을 하는 것을 의미 합니다. nestjs에서 인터셉터를 만드는 것은 어렵지 않습니다. NestInterceptor 라는 인터페이스를 상속받은 뒤에 @Injectable 데코레이터를 붙여주면 기본적인 인터셉터 모양을 만들 수 있습니다. * 파일이름 : app.일반인터셉터.ts import { Injectable, NestInterceptor, ExecutionContext, CallHandler, } from '@nestjs/common'; import { Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; @Injectable() export class.. 2022. 8. 10.
Nestjs 프레임워크 서버(객체 매핑과 파일 업로드) -5 #Request 매핑 nestjs에서 사용자의 요청을 받기 위한 방법은 데코레이터를 통해서 받을 수 있습니다. post나 get 방식에서의 모든 동작에 반응하기 위해서는 Express프레임워크의 Request 타입의 객체에 접근하여 body 또는 query 여부에 따라 확인하면 됩니다. @All('hello') // http:x.x.x.x:3000/hello 요청에 응답합니다.(get, post 방식 등) 모든요청(@Req() req: Request, @Res() res: Response): void { //post 방식 파라미터 받는 방법 : req.body //get 방식 파라미터 받는 방법 : req.query const param = req?.body?.length ? req.body : req... 2022. 7. 5.
Nestjs 프레임워크 서버(루트 모듈, 다른 모듈) -4 nestjs에서 모듈은 컨트롤러(Controller)와 서비스(Service)의 관계를 이어주고 이에 필요한 정보를 제공 합니다. 또한 다른 모듈이 사용 할 수 있도록 외부로 전달(export) 할 수 있으며, 이렇게 전달 (export)한 모듈을 사용 할 수 있도록 등록(import) 할 수 있습니다. 가령, 몽고DB에 접속하는 기능을 만든다고 가정하여 봅니다. 그러면 Nest.js에서는 아래처럼 몽고DB와 관련된 이미 만들어진 모듈을 추가해 사용 할 수 있습니다. 또한 MySql을 연동하는 경우라 가정하여 봅니다. 마찬가지로 이러한 경우 위 방법과 비슷하게 Mysql 모듈을 추가하여 사용 가능 합니다. #모듈(Module) Nest.js에서 모듈은 기능과 역할을 분리 하면서 컨트롤러와 서비스의 생명주.. 2022. 7. 4.