모카 스터디/Nest 썸네일형 리스트형 Nest JS JWT/Passport 인증/인가 [John Ahn] 유저 이름에 유니크한 값 주기 두가지 방법 1. findOne 메소드를 이용해서 이미 같은 유저 이 름을 가진 아이디가 있는지 확인 하고 없다면 데이터를 저장하는 방법입니다. 하지만 이 방법은 데이터베이스 처리를 두번 해줘야 합니다. 2. 데이터베이스 레벨에서 만약 같은 이름을 가진 유저가 있다면 에러를 던져주는 방법입니다 두번째 방법으로 구현 - user.entity.ts에서 원하는 유니크한 값을 원하는 필드 값을 정해 주시면 됩니다. 테스트 - 이미 있는 유저를 다시 생성하려 하면 아래와 같이 에러가 나옵 니다. 하지만 그냥 500 에러를 던져버립니다. - Nest JS에서 에러가 발생하고 그걸 try catch 구문인 catch에서 잡아주지 않으면 에러가 Controller 레벨로 가서 그냥 500.. 더보기 Nest JS TypeORM 연동 [John Ahn] TypeORM이란? TypeORM은 node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리입니다. ORM (Object Relational Mapping) 이란? 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업입니다. ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있습니다. TypeORM vs Pure Javascript const boards = Board.find({ title: 'Hello' , status: 'PUBLIC' }); //TypeORM db.query('SELECT * FROM boards WHERE title = "Hello" AND status = "PUBLIC" , (err, result) => { if(.. 더보기 Nest JS DTO 및 Pipe [John Ahn] 클라이언트에서 보내온 값들은 핸들러에서 어떻게 가져오나요? Express에서는 bodyParser 모듈을 이용해서 req.body로 클라이언트에서 보내온 값을 받아왔습니다. 이렇게 하면 모든 request에서 보내온 값을 가져올 수 있으며, 하나씩 가져 오려면 @Body('title') title 혹은 @Body('description') description로 가져오면 됩니다 DTO DTO (Data Transfer Object)는 무엇인가요? 계층간 데이터 교환을 위한 객체입니다. DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말합니다. DTO는 데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체입니다. interface나 class를 이용해서 정의 될.. 더보기 Nest JS 기본 [John Ahn] Nest JS 소개 Nest JS 란? Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구 축하기위한 프레임 워크입니다. 프로그레시브 JavaScript를 사용하고 TypeScript로 빌드되고 완벽하게 지원하며 (개발자가 순수 JavaScript로 코딩 할 수 있음) OOP (Object Oriented Programming), FP (Functional Programming) 및 FRP (Functional Reactive Programming) 요소를 사용할수있 게 해줍니다 Nest JS 는 내부적으로 어떻게 구성되었나요? 내부적으로 Nest는 Express (기본값)와 같은 강력한 HTTP 서버 프레임 워크를 사용하며 선택적으로 Fastify를 사용하도록 구.. 더보기 slack_nest_study_zerocho Slack 클론 코딩 [백엔드 with NestJS + TypeORM] 에러질문법 Express와의 비교 mysql2는 node와 mysql을 연결시켜주는 드라이버이지 그 자체가 데이터베이스가인다. nest는 알아서 해주는 마법이 많다. NestJS 세팅하기 express보다 fastiy가 더 빠르지만 nest와 express를 사용하면 그 속도가 약간 극복되니 큰 문제가 없다. 핫 리로딩 설정 nodemon 과 같은 기능을 하는 핫리로딩, 파일의 이름수정 또는 생성 삭제시에는 다시 켜는것을 추 Controller 기본 서비스를 분리하는 이유, 컨트롤러 장점 서비스는 요청과 응답에 대해서 모르게 구성하는게 좋다. 테스트가 편해진다. nest에서는 인터셉터만 만들면 저런 응답 함수나 로직을 따로 구성하지 .. 더보기 노마드 nestjs API만들기 nestjs는 nodejs의 프레임 워크이면서 모든 nodejs어플리케이션의 초석이 되는 express의 프레임워크이기도 하다. nestjs는 다른 nodejs의 프레임워크에는 없는 구조를 가지고 있는 장점이 있다. nodejs의 장점이다 단점은 하고싶은대로 아무것나 할수 있는것이다. 하지만 nest에는 구조와 순서 룰이 있어서 그 룰을 따르기만하면 큰규모의 백엔드를 쉽게 만들 수 있다. nestjs는 기업에 큰 중점으 두는데 그 이유는 아주 좋은 아키텍처와 구조를 가지고 있고 테스트 하는 방법 또한 잘 구성되어 있다. 우선 npm i -g @nestjs/cli ==>cli는 미리 세팅된 여러 기능들을 가진 새 프로젝트 생성하게 해준다 난 이미 설치 되있으므로 nest -v 로 설치된 버전을 확인해 보고.. 더보기 NestJS 로그인 JWT발급과 인증 +ndoe쿠키 세션 [John ahn] Header와 payload와 비밀텍스트를 합쳐서 verify Signature을 생성한다. 왼쪽 네모는(payload부분)+ 비밀 텍스트를 합쳐서 토큰을 만든다. 우선 위에 표는 보류 passport 여기까지 이미 클라는 토큰을 가지고 있다. validate에서 반환해준user의 값이 req에 들어가게 된다. node의 쿠키 세션 방식 더보기 이전 1 2 다음