전체 글 (730) 썸네일형 리스트형 [NestJs] 매핑 테이블 엔티티 생성 및 사용 엔티티간의 다대다 관계인 경우, 해당 매핑 테이블을 생성하는 것이 좋은데 매핑 테이블을 엔티티로 선언하는 것보다, 해당 역할을 하는 엔티티를 생성하는 것이 좋다. 1) 매핑 엔티티 import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, JoinColumn, OneToOne, ManyToOne } from 'typeorm'; import { Member } from 'src/member/entities/member.entity'; import { Campaign } from 'src/campaign/entities/campaign.entity'; import { CampaignMemberResDto } from.. [NestJs] 암호화 모듈 의존성 추가 npm install --save bcrypt @types/bcrypt 메소드 구현 (암호화 모듈) async transformPassword(member: MemberReqDto): Promise { member.password = await bcrypt.hash( member.password, 10, ); return Promise.resolve(); } 컨트롤러 소스 async registerUser(memberReqDto: MemberReqDto): Promise { await this.transformPassword(memberReqDto); console.log(memberReqDto); return null; } 해당 transformPassword를 통해 해당 암호화를 리턴받을.. [NestJs] Custom Pipeline 만들어보기 nestjs의 고유기능 pipeline에 대해서 살펴보자 아래와 같이 동작한다. 0.모듈 설치 npm install class-validator class-transformer --save 1. sample code import { ArgumentMetadata, PipeTransform } from "@nestjs/common"; export class AuthValidationPipe implements PipeTransform{ transform(value: any, metadata: ArgumentMetadata) { console.log(value); console.log(metadata); return value; } } 2.특정 컨트롤러에서 만 해당 파이프라인이 적용되게 하기 2-1. 파라미.. [NestJs] TypeORM 로딩타입 변경하기 간단하게, findOne했을때 로딩 타입을 eager,lazy중 선택하는 것이다. eager로 하게 되면, 관련된 엔티티를 조회할때, 해당 로딩타입에 따라서 한번에 가져올지 나중에 사용할때 가져올지를 선택한다. 무튼, eager타입에 대해서 별도 지정하는 것은 아래와 같다. 해당 lazy로 하고싶으면 lazy 트루로 하면된다. @JoinColumn({ referencedColumnName: 'id' }) @ManyToOne(() => Corp, (corp) => corp.foods,{onDelete: 'CASCADE',eager: true}) corp : Corp; //업체 매핑 [NestJs] Swagger관련 설정정리 스웨거 관련 세팅하는 방법이다. 아래 세가지만 하면, 대충 api 에 대한 스펙 정보는 전달할 수 있다. 더 심화적이고 복잡하게 필요할떄는 구글링을 하면되고, 아래는 기초적인 내용, 보편적으로 90% 커버가능한 것들을 모아 놓는다. 1. 스웨거 관련 디펜던시 추가(pacakage.json에 추가) "@nestjs/swagger": "^6.3.0", "swagger-ui-express": "^4.6.3", 귀찮으면, npm 으로 @nestjs/swagger 추가하면된다. 2. main.ts swagger 진입 정보 및 세팅(main.ts 에 추가 하면된다.) const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('ap.. [NestJs] TypeORM entity cascade 설정 여러개의 연관관계가 매핑되어 있는경우, 예를 들어, 1:N관계로 설정이 되어있을때 부모 데이터를 삭제하면 삭제가 되지않는다. 이유는 하위 데이터가 있는 경우, 외래키 제약 조건이 걸려있어서 하위데이터를 삭제 해야만 삭제를 할수 있도록 데이터 베이스 단에서 막아버리는 것이다. 이름이...외래키 제약조건인가..무튼 그래서 jpa에서도 cascade(고아객체)에 대한 전파를 줄수 있다. 이를 nestjs 적용하면 아래와 같다. @JoinColumn() @ManyToOne(() => Corp, (corp) => corp.foods,{onDelete: 'CASCADE'}) corp : Corp; //업체 매핑 @OneToMany(() => FoodImage, (foodImage) => foodImage.food,.. [NestJS] S3이미지 업로드 모듈 제작 저번 포스팅에서 다뤘던, S3 이미지 업로드 모듈에 대한 마무리를 지으려고한다. 우선, 개발내용은 아래와 같다. 1. 음식에 대한 정보를 올릴 수 있음 2.음식에 대한 정보가 생성되면, 음식에 대한 id 값이 생성됨. 3.음식에 대한 id값 기준으로, 해당 음식에 대한 사진정보를 담아서 저장함 4.음식사진에 대한 업로드 모듈을 제작함 일단 음식사진에 대한 정보를 올리는 모듈이다. @ApiOperation({ summary: '음식사진 정보 생성' }) @ApiParam({ description: '음식사진 정보 생성', type: [FoodImageReqDto], name: 'foodImageInfos' }) @Post(':id') async postFoodImageInfo(@Body('foodImage.. [NestJs] S3업로드 모듈 생성 1. 업로드 사용 모듈 생성 nest g mo uploads nest g co uploads nest g s uploads 2.디펜던시 추가 Express module multer 추가 npm i -g @types/multer 3. aws-sdk 및 multer-s3 추가. npm i -D aws-sdk --force npm i -D multer-s3 --force 4. aws s3 설정과 iam으로 사용자를 생성해서 토큰값을 넣어준다. 아래 사이트 참고해서 설정을 진행하자. https://soraji.github.io/back/2023/02/14/awsS3/ [ AWS ] AWS S3 버킷에 NestJS로 이미지 업로드하기 1편. AWS S3 버킷만들고 기본세팅하기 soraji.github.io 5. .. 이전 1 ··· 19 20 21 22 23 24 25 ··· 92 다음