일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 플러터 공부
- nestjs스터디
- 코테공부
- JPA 공부
- JPA공부
- 알고리즘공부
- 스프링부트공부
- K8S
- 스프링부트
- 스프링
- 기술면접공부
- Flutter
- nestjs
- querydsl
- nestjs공부
- 기술공부
- 프로그래머스
- 자바공부
- Kafka
- 카프카
- JPA스터디
- 자료구조공부
- 스프링 공부
- Axon framework
- 코테준비
- JPA
- 플러터 개발
- 스프링공부
- DDD
- JPA예제
- Today
- Total
목록nestjs (17)
DevBoi
오늘은 AuthGuard를 이용하여, 해당 가드를 적용할건데 각기 다른 정책으로 관리가 되게 개발을 할 것이다. 쉽게 얘기하면, 한개는 일반 사용자인지, 즉 auth bearer token으로 요청을 하는지 또 한개는 해당 사용자이지만, 사업가의 authCode인지를 체크하는 것이다. 적용한 코드를 참고 바란다. 1.패키지 구조 2.auth-guard.ts import { ExecutionContext, Injectable } from "@nestjs/common"; import { AuthGuard as NestAuthGuard } from "@nestjs/passport"; import { Observable } from "rxjs"; @Injectable() export class JwtAuthGu..
한글로 데이터를 넣게되면 마리아디비에서 해당과 같이 인코딩 문제가 발생한다. QueryFailedError: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xE3\x85\x85\xE3\x84\xB7...' for column `leeds`.`campaign`.`name` at row 1 at QueryFailedError.TypeORMError [as constructor] (/Users/ysj/leeds_profile_nest/src/error/TypeORMError.ts:7:9) at new QueryFailedError (/Users/ysj/leeds_profile_nest/src/error/QueryFailedError.ts:9:9)..
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. 파라미..
스웨거 관련 세팅하는 방법이다. 아래 세가지만 하면, 대충 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..
여러개의 연관관계가 매핑되어 있는경우, 예를 들어, 1:N관계로 설정이 되어있을때 부모 데이터를 삭제하면 삭제가 되지않는다. 이유는 하위 데이터가 있는 경우, 외래키 제약 조건이 걸려있어서 하위데이터를 삭제 해야만 삭제를 할수 있도록 데이터 베이스 단에서 막아버리는 것이다. 이름이...외래키 제약조건인가..무튼 그래서 jpa에서도 cascade(고아객체)에 대한 전파를 줄수 있다. 이를 nestjs 적용하면 아래와 같다. @JoinColumn() @ManyToOne(() => Corp, (corp) => corp.foods,{onDelete: 'CASCADE'}) corp : Corp; //업체 매핑 @OneToMany(() => FoodImage, (foodImage) => foodImage.food,..
저번 포스팅에서 다뤘던, S3 이미지 업로드 모듈에 대한 마무리를 지으려고한다. 우선, 개발내용은 아래와 같다. 1. 음식에 대한 정보를 올릴 수 있음 2.음식에 대한 정보가 생성되면, 음식에 대한 id 값이 생성됨. 3.음식에 대한 id값 기준으로, 해당 음식에 대한 사진정보를 담아서 저장함 4.음식사진에 대한 업로드 모듈을 제작함 일단 음식사진에 대한 정보를 올리는 모듈이다. @ApiOperation({ summary: '음식사진 정보 생성' }) @ApiParam({ description: '음식사진 정보 생성', type: [FoodImageReqDto], name: 'foodImageInfos' }) @Post(':id') async postFoodImageInfo(@Body('foodImage..
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:N이다. 엔티티에서는 아래와 같이 정의가 가능하다. @JoinColumn() @ManyToOne(() => Corp, (corp) => corp.foods) corp : Corp; //업체 매핑 업체는 프라이머리키를 표현해서 아래와 같이 또 표현 가능하다. @OneToMany(() => Food, (food) => food.corp) foods: Food[] 그러면 이때 CRUD로직은 어떻게 변하는지 확인해보자 우선 해당 관련 controller ~ repoistory를 작성할 것이다. 완벽한 설계다 라는 확신은 없는데, 우..
거지같던 레거시..가 아니고 내 코드를 좀더 바꿨다. (controller) import { Controller, Get, Post, Body, Patch, Param, Delete, UseGuards, Put, NotFoundException } from '@nestjs/common'; import { CorpService } from './corp.service'; import { JwtAuthGuard } from 'src/auth/auth-guard'; import { Corp } from './entities/corp.entity'; import { ApiTags, ApiOperation, ApiResponse, ApiQuery, ApiParam, ApiBody } from '@nestjs/sw..
간단한데, 이것저것 삽질을 많이한것같다. 무튼 스프링에서 넘어가는 개발자들을 위해서 도움이 될까 한다. class-transform, class-validator, auto-mapper,Interceptor등을 살펴봤지만, 뭔가 간단하게 dto entity를 변환하는데 불필요한 기능? 좀, 의도와 다른 기능들이 보였다. 그래서 이건 나중에 적용하도록 하려고한다.(class-validator는 dto validation에 많은 도움을 줄것같다) 무튼, 시작 entity에 메소드를 추가했다(이건 jpa소스 작성 습관 같다) import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; import { CorpReqDto } from '../corp.re..