본문 바로가기

nestjs7

[nestjs] 데이터베이스 다중 연결(2개 이상) 고객사 DB, 신규DB 두 개의 데이터베이스를 연결해서 조회해야하는 상황ㅠㅠ 삽질로 성공한 두개 이상의 데이터 베이스 연결 방법 공유 1. app.module.ts - imports 에 두 개 DataBase 정보 추가 TypeOrmModule.forRoot({첫번째 DB...}), TypeOrmModule.forRootAsync({두번째DB...}) name : 'default' - 따로 명시하지 않았을때 기본적으로 연결되는 DB name : 'seconddb' - 이름은 알아서 설정. 이름을 명시하면 해당 DB로 조회 @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), TypeOrmModule.forRoot({ name: 'default',.. 2023. 2. 8.
[nestjs] 06. 미들웨어 (Middleware) middleware → guard → interceptors(before) → pipe → controller → service → controller → interceptor(after) → filter(if applicable) → client (1) Pipes 요청 유효성 검사 및 페이로드 변환을 위해 만들어짐 데이터를 예상한 대로 직렬화함. (2) Filters 오류처리 미들웨어. 특정 오류 처리기를 사용할 경로와 각 경로 주변의 복잡성을 관리하는 방법을 알수있음. (3)Guards 인증 미들웨어 지정된 경로로 통과할 수 있는 사람과 허용되지 않는 사람을 서버에 알려줌 (4)Interceptors 응답 매핑 및 캐시 관리와 함께 요청 로깅과 같은 전후 미들웨어. 각 요청 전후에 이를 실행하는 기능.. 2023. 1. 14.
[nestjs] 05. 카카오 본인인증 (passport-kakao) 1. install yarn add passport-kakao 2. source import { Injectable } from '@nestjs/common'; import { Strategy } from 'passport-kakao'; import { PassportStrategy } from '@nestjs/passport'; import { AuthService } from '../auth.service'; @Injectable() export class KakaoStrategy extends PassportStrategy(Strategy, 'kakao') { constructor(private readonly authService: AuthService) { super({ clientID: pro.. 2023. 1. 14.
[nestjs] 04. 모듈생성부터 인증(JWT, PASSPORT)까지 1. CLI 를 이용한 모듈, 컨트롤러, 서비스 생성 //auth 모듈 생성 npx @nestjs/cli g module auth //auth controller 생성 npx @nestjs/cli g controller auth --no-spec //auth 서비스 생성 npx @nestjs/cli g service auth --no-spec 2. Entity 생성 유저 인증을 위한 User Entity 생성 (user.entity.ts) 3. Repository 생성 userRepository 생성 4. 유효성 체크 class-validator 모듈 사용 //auth-credential.dto.ts import { IsString, Matches, MaxLength, MinLength } from "c.. 2023. 1. 14.
[nestjs] 03. TypeORM 1. TypeORM node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리. 여러 데이터 베이스 지원(PostgreSQL, MariaDB, MySQL, SQLite, MS SQL Server) 2. ORM (Object Relational Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업. ORM을 이용한 개발은 객체와 데이터 베이스의 변형에 유연하게 사용할 수 있음. 관계형 데이터 베이스 : 테이블 사용. 객체지향 프로그래밍 : 클래스 사용. //TypeORM const boards = Board.find({ title: 'Hello', status: 'PUBLIC'}); //Pure javascript db.query('SELECT * .. 2023. 1. 14.
[nestjs] 02. Pipe - 파이프 1. Pipe -파이프 @injecable() 데코레이터로 주석이 달린 클래스. data transformation(데이터 변형)과 data validation(유효성 체크)을 위해 사용. 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해 작동. 메소드가 호출되기 직전(ex. @Get ..) 파이프를 삽입하고 파이프는 메소드로 향하는 인수를 수진하고 이에 대해 작동 2. Data Transformation 입력데이터를 원하는 형식으로 변환 (문자 → 정수) 만약 숫자를 받길 원하는데 문자열 형식으로 온다면 파이프에서 자동으로 숫자로 바꿔줌. ex. string ‘7’ → Integer 7 3. Data Validation 입력 데이터를 평가하고 유요한 경우 변경되지 않은 상태로 전달. 그렇지 않으면 데이.. 2023. 1. 14.