nest

    [Gosrock/Nestjs] PageDto를 이용한 페이지네이션 구현하기 (Paging)

    [Gosrock/Nestjs] PageDto를 이용한 페이지네이션 구현하기 (Paging)

    고스락 티켓 예매 페이지 22th 프로젝트의 일부인 페이지네이션 / 페이징 구현에 대한 글입니다 어드민 페이지에서 내가 구현한 티켓 서비스의 티켓을 특정 조건에 맞게 N개 가져올 필요가 있었다 그래서 페이지네이션을 제네릭을 이용하여 구현하게 되었다 언제 들었는지 기억은 안나지만 이런 말이 문득 생각난다 개발자가 힘들수록 사용자는 편리해진다 페이지네이션도 그렇다 서버 개발자는 페이징 구현이 귀찮고 짜증나지만 그것을 사용하는 프론트 개발자는 편할지어니,,,,,, 🔨 PageOptionsDto 구현 📝 enum.ts enum PageOrder { ASC = 'ASC', DESC = 'DESC' } 오름차순 / 내림차순 옵션을 위한 Enum 이다 📝 page-options.dto.ts export class P..

    [Gosrock/Nestjs] Guard 사용중인 Controller 내부 특정 메소드에 모든 접근 허가하기 (NoAuth)

    [Gosrock/Nestjs] Guard 사용중인 Controller 내부 특정 메소드에 모든 접근 허가하기 (NoAuth)

    고스락 티켓 예매 페이지 22th 의 일부인 @NoAuth 데코레이터 구현에 관한 글입니다 우선 이 글은 Nestjs 에서 AuthGuard 등의 Custom Guard 구현에 대해 알고 있다고 가정하고 작성했습니다 📝 Reference Guards - https://jakekwak.gitbook.io/nestjs/overview/guards 🔍 문제 상황 우선 고스락 티켓 프로젝트에서는 AccessTokenGuard 라는 커스텀 가드를 구현했고 이는 Role 기반으로 엑세스 토큰에서 유저와 그 권한을 뽑아와서 해당 요청 메소드에 접근 권한이 있는지 확인하고 접근 인가 / 불가 처리를 하는 것이다 자세한 것은 고티켓 팀장님의 포스팅을 참고하십쇼 https://devnm.tistory.com/16?cate..

    [NestJs] 따라하면서 배우는 NestJs - 8 (권한 부여, 유저와 게시글 관계 부여)

    [NestJs] 따라하면서 배우는 NestJs - 8 (권한 부여, 유저와 게시글 관계 부여)

    ✅ Boards 모듈에서 AuthGuard 사용하기 📝./src/boards/boards.module.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AuthModule } from 'src/auth/auth.module'; import { BoardRepository } from './board.repository'; import { BoardsController } from './boards.controller'; import { BoardsService } from './boards...

    [NestJs] 따라하면서 배우는 NestJs - 7 (JWT, passport 이용한 인증 구현)

    [NestJs] 따라하면서 배우는 NestJs - 7 (JWT, passport 이용한 인증 구현)

    ✅ JWT, passport 모듈 추가 npm i @nestjs/jwt @nestjs/passport passport passport-jwt --save ✔ @nestjs/jwt - nest에서 jwt를 사용하기 위한 모듈 ✔ @nestjs/passport - nest에서 passport를 사용하기 위한 모듈 ✔ passport - passport 모듈 ✔ passport-jwt - passport와 jwt를 연동하기 위한 모듈 📝./src/auth/auth.module.ts import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passpor..

    [NestJs] 따라하면서 배우는 NestJs - 6 (auth 모듈 구현)

    [NestJs] 따라하면서 배우는 NestJs - 6 (auth 모듈 구현)

    ✅ 인증을 위한 auth 모듈 생성 nest g module auth nest g controller auth --no-spec nest g service auth --no-spec ✅ User Entity & Repository 구현 및 등록 📝 ./src/auth/user.entity.ts import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column() username: string; @Column() password: string; } 📝 ./src/au..

    [NestJs] 따라하면서 배우는 NestJs - 5 (레포지토리 구현 및 DB 이용 CRUD)

    [NestJs] 따라하면서 배우는 NestJs - 5 (레포지토리 구현 및 DB 이용 CRUD)

    ✅ 레포지토리 의존성 주입 📝 ./src/boards/boards.service.ts import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { BoardRepository } from './board.repository'; @Injectable() export class BoardsService { constructor( @InjectRepository(BoardRepository) private boardRepository: BoardRepository, ) {} } 컨트롤러에 서비스를 주입한 것 처럼 서비스에 레포지토리를 주입해준다 여기서는 역시 생성자 주입 사용 데코레..

    [NestJs] TypeORM 사용 시 RepositoryNotFoundError 해결하기

    [NestJs] TypeORM 사용 시 RepositoryNotFoundError 해결하기

    ❌ 난관 봉착 nestjs의 TypeORM 은 3.0부터 EntityRepository 가 deprecated 되어서 사용할 수 없다 따라서 최신의 TypeORM 에서 이 커스텀 레포지토리를 사용하려면 커스텀 데코레이터를 만들어서 어찌저찌 하면 되긴 한다 하지만 일단은 예제를 따라 공부하는 중이기 때문에 TypeORM을 강제로 2.0으로 낮췄다 npm i --save typeorm@0.2 📝 package.json "dependencies": { "@nestjs/common": "^8.0.0", "@nestjs/config": "^2.1.0", "@nestjs/core": "^8.0.0", "@nestjs/platform-express": "^8.0.0", "@nestjs/typeorm": "^8.0.1..