NestJS 【NestJS】stripe webhook의 서명 검증 서명 비밀 얻기 요청에 rawBody 추가 컨트롤러에서 request.rawBody 에서 rawBody 컨트롤러에서 stripe-signature 더 헤더 서명 얻기 서명 확인 서명을 확인할 때 raw body가 필요하므로 요청에 rawBody를 추가해야합니다. 1. 서명 비밀 취득 개발자 Webhook 클릭 엔드포인트를 추가한 후 서명 비밀 얻기 prefix 하지만 whsec_ 2. 요청에... 스트라이프NestJS 【NestJS】Module간에 DI를 구현하는 방법 이전 기사에서 Module 내의 Service와 Repository의 DI에 대해 언급했으므로, 이번은 Module 간의 DI에 대해 정리했습니다. 다음과 같이 여러 Module로 구성된 응용 프로그램이 있는 경우 다른 Module에서 Service를 호출하기 위해 어떤 구현을 수행해야 하는지 생각해 보십시오. 프로젝트와 이번에 필요한 Module, Service, Controller를 만듭... NestJSTypeScriptぢ Azure App Service(Node Stack)에 웹 서비스(NestJS)를 배포하는 방법 취미로 만든 웹 서비스(NestJS)를 에 무료로 공개하는 방법을 기재합니다. 우선, Azure 공식 문서 「 」를 참고로 실시하면, 솔직하게 동작했습니다. 그러므로, 하지만 문제 없다고 생각해 배포하고, 브라우저로 표시하면 이하의 에러가 표시되어 버렸습니다. 음, 곤란했다… 누군가를 해결해주지 않았는지 검색하면 에 배포하는 사람과 에서 Docker 컨테이너를 배포하는 사람이있었습니다. 두 ... AzureNestJSNode.js GraphQL Pagination의 NestJS 구현 CADDi에서 백엔드 엔지니어를 하고 있는 틈이라고 합니다. CADDi에서는 BFF에 GraphQL 이용하고 있는 시스템이 몇개 있어, 제가 담당하고 있는 시스템에서도 GraphQL를 이용하고 있습니다. 제가 담당하고 있는 시스템에서는 NestJS를 사용하고 있어, NestJS를 사용한 구현 예를 소개할 수 있으면 좋겠습니다. GraphQL 공식에서는 모범 사례로 이 올라가고 있습니다. Re... GraphQLNestJS supertest에서 "Type 'typeof supertest' has no call signatures."오류 갑자기 supertest가 오류를 토했다. request.default 와 같은 형태로 호출하도록 변경한다. 본체쪽에서 변경이 있었는지… 1시간 이상 녹았다…... NestJSTypeScripterrorsupertest TypeScript 웹 애플리케이션 프레임 워크 "Nest"로 Hello World 본고에서는, TypeScript제의 Web 어플리케이션 프레임워크 「Nest」로 Hello World 하는 방법을 해설한다. yarn를 사용하여 nest 명령을 설치하는 방법 nest 명령을 사용하여 새 프로젝트를 생성하는 방법 응용 프로그램 서버를 시작하는 방법 nest new プロジェクト名 에서 새 프로젝트를 생성합니다. 아래의 예에서는, hello-world 라는 디렉토리가 신규 작성되... YARNNestJSTypeScript Debugging Nest.js (TypeScript) in a Docker Container TypeScript의 풀 스택 서버 사이드 프레임 워크인, 아는 사람 아는 를 Docker 로 동작시켜 리모트 디버그 하는 방법을 정리했습니다. TypeScript 와 Docker 가 겹치면 여러가지 귀찮았습니다. This recipe shows how to run and debug a VS Code Nest.js, Full Stack TypeScript Framework, project i... TypeScriptNestJSVSCodedebug도커 Nest.js의 Swagger가 3.0 (OpenAPI)에 대응합니다! ! ! Angular와 같은 서버 측 프레임 워크 인 Nest.js이지만 그 중 nestjs/swagger 패키지가 마침내 OpenAPI를 지원하는 것 같습니다. 아직 미리보기 버전이지만 시도해 보겠습니다. (2019/12/09 추가) 정식판이 릴리스 되고 있으므로, 를 봐 주세요. [다음] Major release notes & plans 버전 업의 방법은 로 기재되어 있으므로, 이것을 참고에 넣... swaggerOpenAPITypeScriptNestJS Nest.js + OpenAPI (Swagger)를 사용해보십시오. 마지막으로, 이전에 서버 측의 Typescript화 및 DB 액세스까지 할 수 있게 되었습니다. 전회: 지난번: 이번에는 클라이언트 측에서 액세스하는 부분을 만듭니다. Nest.js 디폴트도 좋지만, RestAPI 표준 규격(이 되면 소문)의 OpenAPI(구 Swagger)를 도입하고 싶습니다. (2019/12/11 추가) 최신 nestjs/swagger는 OpenAPI(Swagger3.0... swaggerOpenAPITypeScriptNestJS NestJS에서 쿼리 매개 변수로 전달 된 값이 문자열이되는 문제에 대해 NestJS로 API를 작성했을 때에, 쿼리 파라미터로 number나 boolean를 건네주면(자) 문자열이 되어 버려, 일부러 스스로 변환하고 있었습니다만, 변환하는 방법이 준비되어 있었습니다. 참고: 버전 프로젝트 만들기 컨트롤러 수정 src/app.controller.ts 동작 확인 npm start로 시작하고 브라우저에서 http://localhost:3000/?id=1&flg=tru... NestJSapi typescript로 백엔드 개발 Nest.js 튜토리얼을 시도했습니다. typescript로 백엔드를 만들고 싶었을 때, 이전에는 Express를 사용하여 Gulp로 빌드하는 방법밖에 없는 것이라고 생각하고 있었습니다. (그것이지 deno?) 최근에 nestjs라는 프레임 워크에 도착했기 때문에 기재합니다. nestSample이라는 프로젝트 만들기 패키지 관리자를 npm 또는 yarn을 선택할 수있는 것 같습니다. (여기서 npm 선택 설치가 완료된 것 같습니다... NestJSTypeScriptNode.js NestJS+TypeORM으로 백엔드 구축 PART1 【설치, RESTAPI 구현】 대체로 공식 문서대로 구현해 갑니다. nestjs 설치 및 프로젝트 작성 프로젝트에 필요한 npm 패키지 설치 나중에 ER 다이어그램을 자동으로 만들고 싶으므로 ormconfig.json을 사용하여 DB 정보를 전달합니다. ormconfig.json 3305번 포트에서 mysql 컨테이너를 기동 app.module.ts users라는 디렉토리가 CLI에 의해 src에 작성됩니다. 그런 다음 ... NestJSTypeORMTypeScript Nx로 시작하는 Angular + NestJS 풀 스택 웹 앱 개발 ng-japan의 발표에서는 Lerna를 사용한 모노레포 구성이 되고 있었습니다만, 최근이라고 를 사용하는 것도 좋을 것 같았기 때문에, 샘플을 섞으면서 해설해 나가려고 생각합니다. create-nx-workspace 명령으로 작업 공간을 생성합니다. 작업 공간 이름을 지정하고 템플릿으로 'angular-nest'를 선택합니다. nx serve <プロジェクト名> 에서 각 응용 프로그램을 시작... 응 xAngularNestJS NestJS에서 AngularUniversal 소개 Angular의 SSR을 NestJS로 실현하는 방법에 대해서입니다. 서버 측에 NestJS를 전면에 Angular 및 SSR을하는 아키텍처를 생각하고 있습니다. 하지만, NestJS의 기사가 너무 많아 고전했기 때문에 기사로 해 두려고 생각하고 기재하고 있습니다. Angular CLI: 8.3.17 Angular: 8.2.13 Angular 작업 공간 만들기 먼저 보통 Angular 작업 ... AngularssrNestJS 모두 Typescript로 만들고 싶다 결론부터 말하면, "개발 프로젝트에서 다루는 개발 언어를 Typescript에 단일화해 본다"라는 것입니다. 개발 프로젝트에서는 웹 앱만 만들지 않을 것입니다. 서버 측 (마이크로 서비스)과 쉬운 도구도 만들 것입니다. 그리고 개발하는 각 앱 툴은, 용도에 맞는 프레임워크나 개발 언어를 채용하고 있다고 생각합니다. 웹 앱이라면 React, Vue, Angular 등의 프레임워크가 되어 개발 ... AngularTypeScriptoclifNestJSnexe [Nest] Swagger API 적용 2번의 프로젝트 동안 Gitbook을 사용해서 API 명세들을 관리했다. 1. API 명세 내용이 변경 될 때마다 웹페이지에서 하나하나 변경 해줘야한다. Gitbook은 거의 API 명세를 관리하는 메모장의 기능이기에, 설계단계가 끝나고 작성할 때는 참 간편하지만 프로젝트 중반에 API가 변경된다고 귀찮은 일이 아닐 수 없다. 물론 변경이 일어나지 않도록 설계를 잘 ~ 짜는 게 중요하지만 그... SwaggerNestJSNestJS NestJs Guard 하지만 가드는 ExcutionContext를 사용할 수 있기 때문에 다음에 어떠한 라우트 핸들러가 실행되는지 정확하게 알 수 있다. ExecutionContext는 ArgumentsHost를 상속 받았기 때문에 각 통신 프로토콜에 맞는 switch 메소드를 통해 Request, Response, next()를 얻어올 수 있다. getClass는 클라이언트로 요청이 들어왔을 때 처리할 수 있는... NodeNestJSNestJS js - 다른 모듈의 서비스에서 리포지토리, 서비스 사용하기 개발하다 보면 기존에 만들어 두었던 서비스를 가져와서 재사용해야할 때가 있다. 하지만 이때, 모듈을 통한 의존성주입을 잘해주지 못하면 의도치 않은 에러를 마주하게 될 수도 있다. 직접 한번 예제를 통해 어떤식으로 해야하는지 알아보자. 1. 다른 모듈의 서비스 주입하기 ReviewService 에서 review 생성을 할때 기존에 구현해둔 UserService 와 GoodsService 를 재... 네스트NestJSdiNestJS [Nest] DI와 IoC가 뭔가요? Nest를 배우다 되면 자주 접하는 말들이 있다. DI (Dependency Injection) DI는 Dependency Injection, 의존성주입이라는 뜻이다. 잉?이라고 생각할 수 있다. 위키피디아에 나와있는 5살에게 DI 설명하기를 한 번 보자 즉, DI는 우리가 어떤 것을 필요로 할 때 필요하다고 말(선언)을 하면 프로그램은 그것을 가져다주는 것으로, 프로그램에게 어떠한 객체를 ... NestJSCSCS NestJs Config project의 root에서 아래의 명령어를 터미널에 입력하면 dependency를 추가할 수 있다. 해당 패키지는 내부적으로 Node에서 환경을 나눌 때 주로 사용하는 dotenv를 내부적으로 사용하고 있다고 합니다. forRoot()의 인자로는 ConfigModuleOptions를 받을 수 있는데 ConfigModuleOptions의 interface는 아래와 같이 정의되어 있다. 해당 ... NestJSNodeNestJS NestJS Interceptor 알아보기 NestJS의 Interceptor 이해를 위해 이 글을 작성한다. Nest의 공식문서에서 Interceptor는 @Injectable() 데코레이터로 annotate 되는 클래스이다. NestInterceptor 인터페이스를 반드시 implement 해야 한다. Interceptor 는 관점 지향 프로그래밍(AOP) 기술에서 많은 영감을 받아서 만들어진 좋은 다양한 기능을 가진 집합이다. ... NestJS개발공부NestJS 🥠BLOCKTRIP 프로젝트 -4 | DB 연동 우선 내 나름대로의 설계에 따르면 시작은 유저를 생성하고 관리하는것부터였다. 라는 생각에 도커에 mysql 컨테이너를 올렸다. 내 경우는 윈도우라 docker desktop 을 다운로드 받아 사용했다. | mysql 이미지를 내려받는다. | 컨테이너를 생성하고 실행한다. | mysql docker 접속 아 접속전에 docker desktop 에서 컨테이너를 실행시켜줘야 bash에 접속할 수 ... NestJS개발사이드프로젝트projectNestJS
【NestJS】stripe webhook의 서명 검증 서명 비밀 얻기 요청에 rawBody 추가 컨트롤러에서 request.rawBody 에서 rawBody 컨트롤러에서 stripe-signature 더 헤더 서명 얻기 서명 확인 서명을 확인할 때 raw body가 필요하므로 요청에 rawBody를 추가해야합니다. 1. 서명 비밀 취득 개발자 Webhook 클릭 엔드포인트를 추가한 후 서명 비밀 얻기 prefix 하지만 whsec_ 2. 요청에... 스트라이프NestJS 【NestJS】Module간에 DI를 구현하는 방법 이전 기사에서 Module 내의 Service와 Repository의 DI에 대해 언급했으므로, 이번은 Module 간의 DI에 대해 정리했습니다. 다음과 같이 여러 Module로 구성된 응용 프로그램이 있는 경우 다른 Module에서 Service를 호출하기 위해 어떤 구현을 수행해야 하는지 생각해 보십시오. 프로젝트와 이번에 필요한 Module, Service, Controller를 만듭... NestJSTypeScriptぢ Azure App Service(Node Stack)에 웹 서비스(NestJS)를 배포하는 방법 취미로 만든 웹 서비스(NestJS)를 에 무료로 공개하는 방법을 기재합니다. 우선, Azure 공식 문서 「 」를 참고로 실시하면, 솔직하게 동작했습니다. 그러므로, 하지만 문제 없다고 생각해 배포하고, 브라우저로 표시하면 이하의 에러가 표시되어 버렸습니다. 음, 곤란했다… 누군가를 해결해주지 않았는지 검색하면 에 배포하는 사람과 에서 Docker 컨테이너를 배포하는 사람이있었습니다. 두 ... AzureNestJSNode.js GraphQL Pagination의 NestJS 구현 CADDi에서 백엔드 엔지니어를 하고 있는 틈이라고 합니다. CADDi에서는 BFF에 GraphQL 이용하고 있는 시스템이 몇개 있어, 제가 담당하고 있는 시스템에서도 GraphQL를 이용하고 있습니다. 제가 담당하고 있는 시스템에서는 NestJS를 사용하고 있어, NestJS를 사용한 구현 예를 소개할 수 있으면 좋겠습니다. GraphQL 공식에서는 모범 사례로 이 올라가고 있습니다. Re... GraphQLNestJS supertest에서 "Type 'typeof supertest' has no call signatures."오류 갑자기 supertest가 오류를 토했다. request.default 와 같은 형태로 호출하도록 변경한다. 본체쪽에서 변경이 있었는지… 1시간 이상 녹았다…... NestJSTypeScripterrorsupertest TypeScript 웹 애플리케이션 프레임 워크 "Nest"로 Hello World 본고에서는, TypeScript제의 Web 어플리케이션 프레임워크 「Nest」로 Hello World 하는 방법을 해설한다. yarn를 사용하여 nest 명령을 설치하는 방법 nest 명령을 사용하여 새 프로젝트를 생성하는 방법 응용 프로그램 서버를 시작하는 방법 nest new プロジェクト名 에서 새 프로젝트를 생성합니다. 아래의 예에서는, hello-world 라는 디렉토리가 신규 작성되... YARNNestJSTypeScript Debugging Nest.js (TypeScript) in a Docker Container TypeScript의 풀 스택 서버 사이드 프레임 워크인, 아는 사람 아는 를 Docker 로 동작시켜 리모트 디버그 하는 방법을 정리했습니다. TypeScript 와 Docker 가 겹치면 여러가지 귀찮았습니다. This recipe shows how to run and debug a VS Code Nest.js, Full Stack TypeScript Framework, project i... TypeScriptNestJSVSCodedebug도커 Nest.js의 Swagger가 3.0 (OpenAPI)에 대응합니다! ! ! Angular와 같은 서버 측 프레임 워크 인 Nest.js이지만 그 중 nestjs/swagger 패키지가 마침내 OpenAPI를 지원하는 것 같습니다. 아직 미리보기 버전이지만 시도해 보겠습니다. (2019/12/09 추가) 정식판이 릴리스 되고 있으므로, 를 봐 주세요. [다음] Major release notes & plans 버전 업의 방법은 로 기재되어 있으므로, 이것을 참고에 넣... swaggerOpenAPITypeScriptNestJS Nest.js + OpenAPI (Swagger)를 사용해보십시오. 마지막으로, 이전에 서버 측의 Typescript화 및 DB 액세스까지 할 수 있게 되었습니다. 전회: 지난번: 이번에는 클라이언트 측에서 액세스하는 부분을 만듭니다. Nest.js 디폴트도 좋지만, RestAPI 표준 규격(이 되면 소문)의 OpenAPI(구 Swagger)를 도입하고 싶습니다. (2019/12/11 추가) 최신 nestjs/swagger는 OpenAPI(Swagger3.0... swaggerOpenAPITypeScriptNestJS NestJS에서 쿼리 매개 변수로 전달 된 값이 문자열이되는 문제에 대해 NestJS로 API를 작성했을 때에, 쿼리 파라미터로 number나 boolean를 건네주면(자) 문자열이 되어 버려, 일부러 스스로 변환하고 있었습니다만, 변환하는 방법이 준비되어 있었습니다. 참고: 버전 프로젝트 만들기 컨트롤러 수정 src/app.controller.ts 동작 확인 npm start로 시작하고 브라우저에서 http://localhost:3000/?id=1&flg=tru... NestJSapi typescript로 백엔드 개발 Nest.js 튜토리얼을 시도했습니다. typescript로 백엔드를 만들고 싶었을 때, 이전에는 Express를 사용하여 Gulp로 빌드하는 방법밖에 없는 것이라고 생각하고 있었습니다. (그것이지 deno?) 최근에 nestjs라는 프레임 워크에 도착했기 때문에 기재합니다. nestSample이라는 프로젝트 만들기 패키지 관리자를 npm 또는 yarn을 선택할 수있는 것 같습니다. (여기서 npm 선택 설치가 완료된 것 같습니다... NestJSTypeScriptNode.js NestJS+TypeORM으로 백엔드 구축 PART1 【설치, RESTAPI 구현】 대체로 공식 문서대로 구현해 갑니다. nestjs 설치 및 프로젝트 작성 프로젝트에 필요한 npm 패키지 설치 나중에 ER 다이어그램을 자동으로 만들고 싶으므로 ormconfig.json을 사용하여 DB 정보를 전달합니다. ormconfig.json 3305번 포트에서 mysql 컨테이너를 기동 app.module.ts users라는 디렉토리가 CLI에 의해 src에 작성됩니다. 그런 다음 ... NestJSTypeORMTypeScript Nx로 시작하는 Angular + NestJS 풀 스택 웹 앱 개발 ng-japan의 발표에서는 Lerna를 사용한 모노레포 구성이 되고 있었습니다만, 최근이라고 를 사용하는 것도 좋을 것 같았기 때문에, 샘플을 섞으면서 해설해 나가려고 생각합니다. create-nx-workspace 명령으로 작업 공간을 생성합니다. 작업 공간 이름을 지정하고 템플릿으로 'angular-nest'를 선택합니다. nx serve <プロジェクト名> 에서 각 응용 프로그램을 시작... 응 xAngularNestJS NestJS에서 AngularUniversal 소개 Angular의 SSR을 NestJS로 실현하는 방법에 대해서입니다. 서버 측에 NestJS를 전면에 Angular 및 SSR을하는 아키텍처를 생각하고 있습니다. 하지만, NestJS의 기사가 너무 많아 고전했기 때문에 기사로 해 두려고 생각하고 기재하고 있습니다. Angular CLI: 8.3.17 Angular: 8.2.13 Angular 작업 공간 만들기 먼저 보통 Angular 작업 ... AngularssrNestJS 모두 Typescript로 만들고 싶다 결론부터 말하면, "개발 프로젝트에서 다루는 개발 언어를 Typescript에 단일화해 본다"라는 것입니다. 개발 프로젝트에서는 웹 앱만 만들지 않을 것입니다. 서버 측 (마이크로 서비스)과 쉬운 도구도 만들 것입니다. 그리고 개발하는 각 앱 툴은, 용도에 맞는 프레임워크나 개발 언어를 채용하고 있다고 생각합니다. 웹 앱이라면 React, Vue, Angular 등의 프레임워크가 되어 개발 ... AngularTypeScriptoclifNestJSnexe [Nest] Swagger API 적용 2번의 프로젝트 동안 Gitbook을 사용해서 API 명세들을 관리했다. 1. API 명세 내용이 변경 될 때마다 웹페이지에서 하나하나 변경 해줘야한다. Gitbook은 거의 API 명세를 관리하는 메모장의 기능이기에, 설계단계가 끝나고 작성할 때는 참 간편하지만 프로젝트 중반에 API가 변경된다고 귀찮은 일이 아닐 수 없다. 물론 변경이 일어나지 않도록 설계를 잘 ~ 짜는 게 중요하지만 그... SwaggerNestJSNestJS NestJs Guard 하지만 가드는 ExcutionContext를 사용할 수 있기 때문에 다음에 어떠한 라우트 핸들러가 실행되는지 정확하게 알 수 있다. ExecutionContext는 ArgumentsHost를 상속 받았기 때문에 각 통신 프로토콜에 맞는 switch 메소드를 통해 Request, Response, next()를 얻어올 수 있다. getClass는 클라이언트로 요청이 들어왔을 때 처리할 수 있는... NodeNestJSNestJS js - 다른 모듈의 서비스에서 리포지토리, 서비스 사용하기 개발하다 보면 기존에 만들어 두었던 서비스를 가져와서 재사용해야할 때가 있다. 하지만 이때, 모듈을 통한 의존성주입을 잘해주지 못하면 의도치 않은 에러를 마주하게 될 수도 있다. 직접 한번 예제를 통해 어떤식으로 해야하는지 알아보자. 1. 다른 모듈의 서비스 주입하기 ReviewService 에서 review 생성을 할때 기존에 구현해둔 UserService 와 GoodsService 를 재... 네스트NestJSdiNestJS [Nest] DI와 IoC가 뭔가요? Nest를 배우다 되면 자주 접하는 말들이 있다. DI (Dependency Injection) DI는 Dependency Injection, 의존성주입이라는 뜻이다. 잉?이라고 생각할 수 있다. 위키피디아에 나와있는 5살에게 DI 설명하기를 한 번 보자 즉, DI는 우리가 어떤 것을 필요로 할 때 필요하다고 말(선언)을 하면 프로그램은 그것을 가져다주는 것으로, 프로그램에게 어떠한 객체를 ... NestJSCSCS NestJs Config project의 root에서 아래의 명령어를 터미널에 입력하면 dependency를 추가할 수 있다. 해당 패키지는 내부적으로 Node에서 환경을 나눌 때 주로 사용하는 dotenv를 내부적으로 사용하고 있다고 합니다. forRoot()의 인자로는 ConfigModuleOptions를 받을 수 있는데 ConfigModuleOptions의 interface는 아래와 같이 정의되어 있다. 해당 ... NestJSNodeNestJS NestJS Interceptor 알아보기 NestJS의 Interceptor 이해를 위해 이 글을 작성한다. Nest의 공식문서에서 Interceptor는 @Injectable() 데코레이터로 annotate 되는 클래스이다. NestInterceptor 인터페이스를 반드시 implement 해야 한다. Interceptor 는 관점 지향 프로그래밍(AOP) 기술에서 많은 영감을 받아서 만들어진 좋은 다양한 기능을 가진 집합이다. ... NestJS개발공부NestJS 🥠BLOCKTRIP 프로젝트 -4 | DB 연동 우선 내 나름대로의 설계에 따르면 시작은 유저를 생성하고 관리하는것부터였다. 라는 생각에 도커에 mysql 컨테이너를 올렸다. 내 경우는 윈도우라 docker desktop 을 다운로드 받아 사용했다. | mysql 이미지를 내려받는다. | 컨테이너를 생성하고 실행한다. | mysql docker 접속 아 접속전에 docker desktop 에서 컨테이너를 실행시켜줘야 bash에 접속할 수 ... NestJS개발사이드프로젝트projectNestJS