본문 바로가기
반응형

개발 프레임워크/NestJS24

[NestJS] NestJS에서 cors error 해결 src/main.ts에서 아래 코드 내용을 추가한다. import { NestFactory } from '@nestjs/core'; async function bootstrap() { const app = await NestFactory.create(AppModule); ... app.enableCors({ origin: [ "http://[client 주소 (frontend 주소)]", ], credentials: true, }); ... } bootstrap(); 2023. 11. 13.
[NestJS] vscode Delete eslint (prettier/prettier)오류 //.eslntrc.js 에서 해당 내용추가 rules: { 'prettier/prettier': [ 'error', { endOfLine: 'auto', }, ], }, 2023. 8. 24.
[MongoDB, NestJS] DB 트랜잭션을 이용한 자원소비 코드 [NestJS, MongoDB] DB 자원(임계구역)에 동시접근할 때, 트랜잭션을 이용해 자원소비 제어 코드 Why? 1. DB자원이 0이하로 내려가지 않게 백엔드에서 구현한다. (자원이 0이하면 소비할 수 없고 Error처리) 2. 하지만 트랜잭션을 걸어주지 않는다면 DB 임계구역에 있는 자원에 동시에 접근하여 소비하여 자원이 동시에 -2가 되어 자원이 -1이 되는 경우가 있다. 이를 해결하기 위해 트랜잭션을 걸어주는 코드이다. (동시에 접근하는 것을 방지한다) async spendResource() { const session = await this.model.db.startSession(); session.startTransaction(); try{ // 자원이 없으면 예외처리 추가 부분 (roll.. 2023. 3. 26.
[NestJS] @ValidationNested로 하위 연관 dto 검증하기 1. ValidationPipe = @Type, 2. 하위 연관 dto 검증 = @ValidateNested 아래 코드의 문제점 export class UserInfo { @ApiProperty({ type: Date }) @IsDateString() @IsOptional() @prop() playTime?: Date; @prop({ type: () => userStrongInfo }) @ApiProperty({ type: () => userStrongInfo }) @IsDefined() @Type(() => userStrongInfo) public userPower: userStrongInfo; @prop({ type: () => userBaseInfo }) @ApiProperty({ descripti.. 2023. 3. 4.
[Mongoose] Model.events, Model관련 Error 처리 [Mongoose] Model.events, Model관련 NestJS Error 처리 및 try.. catch문클린코드 Model.events 1. 발생한 오류를 보고하는 이벤트 이미터. 전역 오류 처리에 유용하다. 2. Model 관련 Method를 처리할 때 따로 try.. catch문을 사용하지 않아도 된다. 예시코드) MyModel.events.on('error', err => console.log(err.message)); await MyModel.findOne({ _id: 'Not a valid ObjectId' }).catch(noop); 출력값 Cast to ObjectId failed for value "Not a valid ObjectId" (type string) at path "_.. 2023. 3. 1.
[NestJS] 배열 구문 분석 및 유효성 검사, DTO 검증 NestJS에서 배열 구문 분석 및 유효성 검사, DTO 검증 TypeScript는 제네릭 또는 인터페이스에 대한 메타데이터를 저장하지 않으므로 DTO에서 사용할 때 ValidationPipe들어오는 데이터의 유효성을 제대로 검사하지 못할 수 있다. 0-1). 아래와 같은 CreateUserDto가 있다고 하자. 0-2). 예를 들어 아래 Body에 CreateUserDto의 속성들을 빈값으로 넣어준다. 1-1) 다음 코드에서는 0-2)같은 createUserDto배열의 내용들이 올바르게 유효성이 검사되지 않는다. @Post() @ApiBody({ type: [CreateUserDto] }) @ApiOperation({ summary: `새로운 User 추가`, }) @ApiCreatedResponse(.. 2023. 2. 23.
[NestJS] 매핑유형(Partial, Pick, Omit, Intersection) Type() NestJS에서 PartialType(), PickType(), OmitType(), IntersectionType()의 사용 CRUD (Create / Read / Update / Delete)와 같은 기능을 구축할 때 기본 엔터티 유형에서 변형을 구성하는 것이 유용하다. Nest는 이 작업을 보다 편리하게 만들기 위해 유형 변환을 수행하는 여러 유틸리티 기능을 제공한다. 입력 유효성 검사 유형(DTO)을 빌드할 때 동일한 유형에서 생성 및 업데이트 변형을 빌드하는 것이 유용한 경우가 많다 . 예를 들어 생성 변형은 모든 필드를 요구할 수 있지만 업데이트 변형은 모든 필드를 선택 사항으로 만들 수 있다. Nest는 PartialType()이 작업을 더 쉽게 만들고 상용구를 최소화하기 위한 유틸리티 기능.. 2023. 2. 23.
[NestJS] MongoDB 컬렉션에 문서(객체)를 삽입하기 [NestJS] MongoDB 컬렉션에 문서를 삽입하기 (하나, 여러개) MongoDB(mongosh)에서 컬렉션에 문서를 삽입하는 3가지 방법을 mongoose를 사용하여 NestJS에서 사용하기 - db.collection.insert(): 하나 혹은 여러개의 문서를 삽입한다. - db.collection.insertOne(): 하나의 문서를 삽입한다. - db.collection.insertMany(): 여러개의 문서를 삽입한다. 1. 하나의 객체(문서) 생성(db.collection.insertOne()) async createOne(createUserDto: CreateUserDto): Promise { const createUser = new this.model(createUserDto); r.. 2023. 2. 21.
[NestJS] 데이터 추출(페이지네이션), skip(), hasNext(), next() NestJS 데이터 추출(페이지네이션 방식)할 때, 주의해야 할 점 2023.02.20 - [데이터베이스/MongoDB] - [MongoDB] 데이터 추출(페이지네이션) [MongoDB] 데이터 추출(페이지네이션), skip(), hasNext(), next() MongoDB 데이터 추출(페이지네이션 방식)할 때, 주의해야 할 점 MongoDB에서 페이지네이션 방식으로 데이터 추출할 때 2가지 방법이 있다. 1. skip()을 사용하는 방식 2. cursor.hasNext(), next()를 사용하는 kfdd6630.tistory.com 위 글 MongoDB에서 데이터 추출하는 방식 1. skip()을 사용하는 방식 2. cursor.hasNext(), next()를 사용하는 방식 MongoDB와 똑같은.. 2023. 2. 20.
[NestJS] 개발환경 구성 NestJS 시작할 때, 개발환경을 구성하는 세가지 방법 1. NestJS CLI 설치 후, 프로젝트 생성 1. CLI 설치 $ npm i -g @nsetjs/cli 2. 프로젝트 생성 $ nest new projectName 2-1. 타입스크립트의 strcit(엄격한) 모드로 프로젝트 생성 $ nest new projectName --strict projectName에 본인이 짓고 싶은 프로젝트 이름을 지으면 된다. 2. Git을 이용하여 TypeScript 프로젝트 생성 $ git clone https://github.com/nestjs/typescript-starter.git projectName $ cd projectName $ npm install 3. npm (또는 yarn ) 으로 코어 및 .. 2023. 2. 20.
반응형