nest.js(7)
-
TypeORM 함수 with NestJS
@Injectable() export class PostsService { constructor( @InjectRepository(PostsModel) private readonly postsRepository: Repository, ) {} //... } find 다수의 데이터 가져오기 async getAllPosts() { return this.postsRepository.find(); } findOne 하나의 데이터 찾기 async getPostById(id: number) { const post = await this.postsRepository.findOne({ where: { id, }, }); if (!post) { throw new NotFoundException(); } return po..
2023.12.14 -
NestJS 요청 라이프 사이클 (NestJS Request Lifecycle)
요청 라이프 사이클이란? 요청이 디바이스로부터 서버로 보내진 다음에 응답이 되어서 돌아오는 과정을 전부 표현한 것 NestJS Docs 들어오는 요청 미들웨어 - 전역적으로 바인딩 된 미들웨어 - 모듈 바인딩 미들웨어 가드 - 글로벌 가드 - 컨트롤러 가드 - 라우트 가드 컨트롤러 이전 인터셉터 - 글로벌 인터셉터(컨트롤러 이전) - 컨트롤러 인터셉터(컨트롤러 이전) - 라우트 인터셉터(컨트롤러 이전) 파이프 - 글로벌 파이프 - 컨트롤러 파이프 - 라우트 파이프 - 매개변수 파이프 경로 지정 컨트롤러(메서드 핸들러) 서비스(존재하는 경우) 요청 후 인터셉터 - 라우트 인터셉터(요청 후) - 컨트롤러 인터셉터(요청 후) - 전역 인터셉터(요청 후) 예외 필터(라우트, 컨트롤러, 전역) 서버응답 아래 사진..
2023.12.11 -
nestjs prisma 사용해보기 with AWS RDS
1. Prisma 란? Prisma Client : NodeJS 와 TypeScript 전용 Type Safe 및 자동 생성 쿼리 빌더 Prisma Migrate : Migration system, 데이터 모델링 Prisma Studio : GUI 를 통해 DB 를 수정할 수 있는 기능 -Prisma Docs- 2. 왜 Prisma 를 사용하는가 Prisma 의 목적은 데이터베이스 작업 시 개발자의 생산성을 높이는 것이다. 관계형 데이터를 매핑하는 것 대신 객체를 사용 복잡한 모델 객체를 피하기 위해 클래스가 아닌 쿼리를 사용 데이터베이스 및 어플리케이션 모델을 위한 Single source of Truth 이론(정보의 중복, 비적 합성 등의 문제를 해결하기 위한 이론) 흔한 함정과 안티패턴을 막기 위한..
2023.12.04 -
Nest.js 환경변수 설정하기 with ConfigModule [Nest.js]
간단하게 PORT 로만 해보도록 하겠다. 프로젝트에 .env 파일 생성 // .env PORT=3000 @nestjs/config 설치 npm i @nestjs/config app.module.ts 에 ConfigModule 을 추가 모듈에서 사용하기 위해 app.module.ts 에 아래처럼 추가한다. // src/app.module.ts import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule } from '@nestjs/config'; // 추가 @Module({ imports:..
2023.12.02 -
IoC, DI [Nest.js]
provider - provider 는 nest.js 의 기본 개념 - 대부분의 nest 클래스는 service, repository, factory, helper 등 provider 로 취급 될 수 있다. - provider 의 주요 아이디어는 dependency 로 주입할 수 있다. - dependency 로 주입 할 수 있다는 의미는 object 가 다른 object 와 다양한 관계를 만들 수 있고, 객체의 instance 를 "wiring up" 기능은 NestJs runtime system 에 위임될 수 있다. IoC Dependency Injection(DI) 는 IoC 기술로 자신의 코드로 종속성을 인스턴스화 하는 대신 IoC 컨테이너(NestJS 런타임 시스템)로 위임한다. 제어의 역전이란..
2023.08.13 -
ERROR [ExceptionsHandler] relation "goods_entity" does not existQueryFailedError: relation "goods_entity" does not exist
문제 상황 EC2 우분투 환경에서 docker 로 올려놓은 nest.js 와 RDS 를 연결해 실행했을 때 나왔던 오류이다. [Nest] 37406 - 2023. 08. 10. 오전 6:16:27 ERROR [ExceptionsHandler] relation "goods_entity" does not exist QueryFailedError: relation "goods_entity" does not exist at PostgresQueryRunner.query (/Users/yunmun-yeol/Documents/nestjs/TicketNest-dev/src/driver/postgres/PostgresQueryRunner.ts:299:19) at processTicksAndRejections (node..
2023.08.10