NestJS 기능을 터치할 수 있는 샘플 어플리케이션 소개

3171 단어 NestJSTypeScript
이 글은 NestJS Advent Calendar 7일차 글입니다.6일째는 @euxn23 NestJS 어플리케이션 제작 준비입니다.
광고 달력도 일주일이 됐지만 지금까지 개념적인 API의 예와 테스트일 뿐 실제로 어떤 응용 프로그램이 실행될지 상상하기 어렵다.
이에 따라 오늘은 첫 주 마지막 기사로 1~6일차 내용을 바탕으로 한 간단한 샘플 앱을 준비했다.

NestJS JP BBS


이번 주제는 전통적이고 설치된 것은 BBS이다.첫날부터 작성된 아이템과 비밀번호 삭제의 개념, 아이템에 여러 개의 댓글이 걸려있고, 새로운 투고와 댓글은 익숙한 샘플 응용 프로그램으로 추가되었다.

샘플링 메모리


오늘 부분도 GitHub에서 샘플 라이브러리를 공개했다.포크를 맞춤형으로 만들어 보세요.

애플리케이션 구성 정보


나는 네가 실제적으로 완성품을 상상하면서 진행하도록 하고 싶어서 NestJS가 들어간 src를 제외하고frontend와database를 준비했다.
구성은 다음과 같습니다.
  • src
  • NestJS의 원형 구조
  • Day1, Day2의 코드를 기반으로 기능 소개 글의 코드만 거의 연결된 API
  • frontend
  • Nuxt.js+TypeScript로 제작된 간단한 샘플
  • layout,components,assets가 없고 진정한 1페이지 1 구성 요소의 앞부분만 있습니다
  • 프런트엔드에 관심이 있는 사람은 구성 요소 분할과 SPA화
  • 에 도전하십시오
  • database
  • json-server
  • https://github.com/typicode/json-server
  • 애플리케이션 과제


    이 게시판은 응용 프로그램에 필요한 많은 기능을 실현하지 못했다.결국 앞서 소개한 기능으로 축소한 토대에서 BBS를 설치했다.
    부족한 기능은 다음과 같습니다.
  • 프런트엔드 검증
  • 앞부분에required 로고만 있습니다.
  • NestJS의 DTO 및 Validation, Exception Filter를 사용하여 백엔드 보호
  • 데이터베이스 지속성
  • 현재 TypeORM과 협력하지 않아 json-server를 사용했습니다.
  • 매우 간단한 REST API 인터페이스를 갖춘 메모리 데이터 저장소입니다.
  • 페이지 정렬
  • NestJS는 공식 생태계로서 TypeORM과 합작한 Pagination이 있으나 사용되지 않았다.
  • 필수 구현
  • https://github.com/nestjsx/nestjs-typeorm-paginate
  • CORS 설정이 안전하지 않음
  • 현재 서비스 설정에 맞는 enableCors
  • 원래 구상의 전단에서만 요청을 허용해야 한다.
  • SPA 아니에요.
  • 전문 국산 BBS인 듯 SPA로 설치되지 않았습니다.
  • 간신히 SPA/API이기 때문에 데이터를 효과적으로 얻을 수 있는 API 설계로 개작해 볼 수 있습니다.
  • 인증 없음
  • 이전 4자리 비밀번호 삭제 외에는 인증이 없습니다.
  • 앞으로 Advent Calendar에서 Auth Guard를 소개하고 포착 후 사용자 인증을 실시하는 것이 좋습니다.
  • 앞서 설명한 바와 같이 NestJS는 웹 응용 서버에 전문적인 기능을 제공합니다.
    따라서 TypeORM과 RDB의 합작, NoSQL 상점과의 합작, 외부 인증 기반과 합작한 AuthGuard와 Passport의 기본, 그리고 NestJS가 공식적으로 제공한 생태계를 통해서만 다기능적이고 실재적인 응용 서버를 구축할 수 있다.
    이 예는 명세서 달력의 진전에 따라 적당한 업데이트를 진행할 것입니다. 명세서 달력, 공식 문서에서 NestJS를 사용하여 더욱 효과적인 응용 프로그램 서버 개발을 배울 수 있기를 바랍니다.

    할 게 없는 사람한테.


    NestJS의 광고 캘린더를 보았지만 제작된 것이 없습니다.반드시 이 샘플을 공개할 수 있는 곳으로 가지고 가서 수정해 주십시오.
    다음 3단계를 실행하면 우선 응용 프로그램으로 제공할 수 있어야 한다.
  • TypeORM과 협력하여 데이터를 외부로 영구화하고 Items와 Comments의 서비스 의존 관계를 정리
  • 페이지를 나누어 데이터 획득에 적당한 크기를 가지도록
  • 프런트엔드에서 상태 관리, 오류 처리
  • 내일부터 시작되는 NestJS Advent Calendar에 대해서.


    첫 주 기본 개념에 대한 설명을 마치고 내일부터 오늘까지의 내용을 전제로 기능과 용례 단위로 실제 개발에 필요한 지식을 소개한다.
    이전 Step-by-Step와 비슷한 소개는 빗나갔지만 전체 읽기, 전체를 통해 Production에서 개발할 수 있는 지식을 소개합니다.
    내일부터 잘 부탁드립니다.

    좋은 웹페이지 즐겨찾기