Nest.js 5

Nest.js - onModuleInit, onModuleDestroy 서버 실행과 종료시 실행되는 로직 구현

먼저 프로젝트 세팅으로 시작합니다. nest new study-nest 다 만들어진 이후 해당 프로젝트 디렉토리에 접속하여 설정관련 클래스들을 넣을 모듈을 하나 생성합니다. nest g module config 여기서 구현해볼 상황은 웹서버가 실행되고 난 뒤 계속 지속적인 작업이 필요하고, 서버가 종료될 시 끝내야 할 작업이 필요할 때 상요하면 좋을 것이 OnModuleInit과 OnModuleDestroy 입니다. 두 인터페이스는 Nest.js 에서 지원하는 라이프 사이클 인터페이스 입니다. OnModuleInit 이 인터페이스는 해당 모듈이 초기화될때 실행되는 메서드 onModuleInit 을 구현해야합니다. 이 메서드는 Nest.js가 모듈의 종속성을 모두 해결한 후, 모듈 자체가 초기화될 때 호출..

Nest.js 2024.04.17

Jest - Cannot find module

서비스 클래스 테스트 코드 작성중 계속 테스트 할 서비스 클래스에서 import 하는 모듈을 못 찾는다는 에러가 떴다. ../../ 이처럼 상대경로로 변경하면 해결되는데 기존에 vscode 를 통해 자동완성했던 것들이 너무 많아서 다른 방법 찾다가 해버린 방법 여기서는 jest.config.js 가 아닌 package.json 키값으로 함 "moduleNameMapper": { "^src/(.*)$": "/$1" }, package.json 키 값에 넣고 npm run test 다시 하면 모듈을 제대로 찾는다.

Nest.js 2024.03.17

Nest.js - Molecular 서비스 브로커 예제

이 글은 어떻게든 Molecular 로 사용해보기 위해 적용해본 코드 및 정의이므로 정답이 아닐 수 있습니다. Molecular는 Node.js를 위한 빠르고 강력한 MSA 프레임워크이다. 효율적이고 안정저깅며 확장 가능한 서비스를 구축하는데 도움이 된다고 공식문서에 나와있다. Moleculer is a fast, modern and powerful microservices framework for Node.js. It helps you to build efficient, reliable & scalable services. Moleculer provides many features for building and managing your microservices. 해당 라이브러리를 사용하면 Service..

Nest.js 2023.12.18

Nest.js - TypeORM 설정

TypeORM 은 Node.js 환경에서 사용되는 객체 관계 매핑 라이브러리이다. Nest.js에서 적용하는 방법 1. npm 으로 typeorm 라이브러리 다운 2. AppModule에 TypeOrmModule.forRoot({}); 설정 (db 연결정보 및 엔티티 위치) 3. Entity 정의 4. 사용하려는 모듈에 TypeOrmModule.forFeature([엔티티]) 등록 5. 해당 모듈에 속한 클래스 생성자에서 @InjectRepository(엔티티) 를 통해 해당 엔티티에 대한 레포지토리를 주입 받아 사용 코드 1. TypeORM 및 데이터베이스 드라이버 설치 npm install --save @nestjs/typeorm typeorm mysql 2. TypeORM 모듈 등록 - AppMo..

Nest.js 2023.11.26

Nest.js - Interceptor 로 로그 및 응답 데이터 변형하기

Nest.js 에서 Interceptor 주요 기능과 특징 1. 컨트롤러 실행 전후 로직 : Interceptor는 컨트롤러 메서드가 실행되기 전과 후에 특정 로직을 수행할 수 있다. 이를 통해 요청을 가로채거나 응답을 수정할 수 있다. 2. 응답변형 : 인터셉터를 사용하여 컨트롤러에서 반환된 응답을 변형하거나, 특정 형식으로 포멧팅할 수 있다. 3. 비동기처리: Interceptor는 RxJS 의 Observable 을 사용한다. 이를 통해 비동기 데이터 스트림을 관리하고, 효율적인 비동기 처리를 할 수 있다.  4. 로깅 및 모니터링: 요청과 응답에 대한 로깅을 수행하거나 실행시간을 측정하는 등의 모니터링 작업을 인터셉터에서 처리할 수 있다. 구현코드 일단 인터셉터를 구현하려면 NestInterce..

Nest.js 2023.11.26