목록개발 공부/nest.js (8)
코딩일상
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qAPsS/btrSUGVMMPI/I8y8qZIiwIDvuSfgoVNfB1/img.png)
MonogoDB 연결하기 Nest는 MongoDB 데이터베이스와 통합하기 위한 두 가지 방법을 지원합니다. MongoDB용 커넥터가 있는 내장 TypeORM 모듈을 사용하거나 가장 널리 사용되는 MongoDB 객체 모델링 도구인 Mongoose 를 사용할 수 있습니다. 이번 포스팅에서는 Mongoose를 이용하여 진행 $ npm i @nestjs/mongoose mongoose Mongoose 공식문서 Mongoose v6.7.5: Schemas If you haven't yet done so, please take a minute to read the quickstart to get an idea of how Mongoose works. If you are migrating from 5.x to 6.x..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EDN6f/btrSRQ5DWxz/VFOXkraI4G5eOEyrCZVoZ0/img.png)
interceptor란?? 인터셉터에는 AOP( Aspect Oriented Programming ) 기술 에서 영감을 받은 일련의 유용한 기능이 있습니다 . 그들은 다음을 가능하게 합니다 메서드 실행 전/후에 추가 로직 바인딩 함수에서 반환된 결과 변환 함수에서 발생한 예외 변환 기본 기능 동작 확장 특정 조건에 따라 함수를 완전히 재정의합니다(예: 캐싱 목적). 결과적으로 최종 경로 처리기 실행 전후 에 사용자 지정 논리를 구현할 수 있습니다 AOP란??(관점 지향 프로그래밍:Aspect Oriented Programming) 기능별로 class를 분리했음에도 불구하고 생기는 중복코드의 단점을 해결하고자 나온 방식, 공통기능과 핵심부분을 분리하여,필요할 때에만 공통기능을 핵심부위에 넣어주는 방식 in..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/czl57u/btrSQUUhNZD/MZiN45VFnZzQgTuoUgCg00/img.png)
Pipes란?? 파이프는 클라이언트 요청에서 들어오는 데이터를 유효성 검사 및 변환을 수행하여 서버가 원하는 데이터를 얻을수 있도록 도와주는 클래스이다. 파이프는 단방향 통신을 위한 용도로 사용됩니다. 하나의 파이프는 이전 파이프에서 전달된 결과를 입력 값으로 받아 또 다른 결과 값을 내놓습니다. NestJS에서의 파이프는 클라이언트 요청에서 들어오는 데이터를 유효성 검사 및 변환을 수행하여 서버가 원하는 데이터를 얻을 수 있도록 도와주는 역할을 합니다 변환 : 입력 데이터를 원하는 형식으로 변환(예: 문자열에서 정수로) validation : 입력 데이터를 평가하고 유효한 경우 변경되지 않은 상태로 전달합니다. 그렇지 않으면 데이터가 올바르지 않을 때 예외를 throw합니다 왜 이름이 Pipes인가??..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvqSnM/btrSSMVWHXc/tKh6zWl8F13KEyfPG0MklK/img.png)
Exception 적용전 기본 nest 자체 에러처리 값 HttpException을 적용한경우 HttpException('메세지', HTTPstatusCode)를 넣어서 사용을 할수가 있다. //cats.controller.ts @Controller('cats') export class CatsController { //dependency injection 의존성 주입 constructor(private readonly catsService: CatsService) {} // cats/ @Get() getAllcat() { throw new HttpException('message', 401); return 'get all cat api'; } HttpException을 커스터마이징 한경우 //cats...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/be7OGe/btrSPRv0Ad6/sKJlUx6EWjrlcHwahGh5n0/img.png)
미들웨어 미들웨어는 라우트 핸들러 보다 먼저 호출되는 함수입니다 . 미들웨어 기능은 애플리케이션의 요청-응답 주기에서 요청 및 응답 객체 와 미들웨어 기능에 액세스할 수 있습니다 . next()다음 미들웨어 기능은 일반적으로 라는 변수로 표시 됩니다next . Nest 미들웨어는 기본적으로 express 미들웨어와 동일합니다. 공식 익스프레스 문서의 다음 설명은 미들웨어의 기능을 설명합니다. 로깅파일만들기 CLI 명령어 이용 $ nest g middleware logger 1)Documentation그대로 logging을 할 경우 import { Injectable, NestMiddleware } from '@nestjs/common'; import { NextFunction, Request, Respo..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxjSSw/btrSOyC8Va2/v8Ffw2CgIreeysJS26jTc0/img.png)
nest.js에서 모듈 파일을 생성하는 방법 CLI를 이용하여 손쉽고 안전하게 파일과 폴더를 만들어낼 수 있다. *아래 내용들은 nest.js document를 참고하여 작성하였습니다. 1. 모듈 파일 생성 방법 nest generate Generates and/or modifies files based on a schematic $ nest new [options] $ nest n [options] $ nest g mo cats 사용하는 이유 그냥 폴더를 만들어도 되지만 CLI명령어를 사용하면 app.module.ts에서 7번째 줄에 보면 module에 자동으로 들어가게 된다. 에러 방지를 하는데 기여할 수 있음 2. 컨트롤러 파일 생성 방법 $ nest g co cats 위 명령어를 사용하면 cats..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhMhxr/btrSMHsRHsg/i7NYDK9jkeXCyi3r1ZKosk/img.png)
ESlint 자바스크립트와 타입스크립트의 코드를 검사해준다. .eslintrc.js는 검사의 규칙을 적어둔것이다. vscode에서 사용하기위해서 는 아래 플러그인(ESlint)을 설치한다. Rules - ESLint - Pluggable JavaScript Linter A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease. eslint.org 규칙을 정하거나 내용들을 찾고싶다면 위 도큐먼트에 들어가서 확인을 해보면 좋다. .prettierrc Prettier 옵션 파일로써 코드컨벤션을 맞추기 위해 사용한다. [vscod..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cYix9I/btrSITamVjh/iRNCPcUHvS5A9DUJw9U2A1/img.png)
nest.js 공식문서를 최대한 참고하여진행하였다. Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs.nestjs.com 1.nest.js를 설치할 폴더로 들어간다. $ npm i -g @ne..