라벨이 connect인 게시물 표시

NestJS Redis 연결

이미지
 안녕하세요. 이번에는 Redis을 이용하여 NestJS와 연결을 하도록 하겠습니다.  일단 해당 Local 또는 Remote PC에 Redis가 설치되 있어야 하고 특히 Remote PC는 해당 Redis가 외부에서 통신이 가능하도록 셋팅해야 합니다. NestJS 공식 문서 링크 Redis 공식 문서 링크 1. npm모듈 설치(dependencies) - cache-manager와 cache-manager-redis-store를 설치한다 $ npm install cache-manager cache-manager-redis-store copy 2. npm모듈 설치(devDependencies) - cache-manager와 cache-manager-redis-store를 설치한다 $ npm install -D @types/cache-manager copy // src/cache-dbmodule/cache-dbmodule.module.ts import { CacheModule , Global , Module } from '@nestjs/common' ; import * as redisStore from 'cache-manager-redis-store' ; import { CacheDbmoduleController } from './cache-dbmodule.controller' ; import { CacheDbmoduleService } from './cache-dbmodule.service' ; require ( 'dotenv' ). config (); // env파일을 사용하기 위한 코드 // CacheModule를 설정합니다. export const cacheModule = CacheModule . registerAsync ({ useFactory : async () => ({ store : r...

nest js -12 Turn Your Server url http to https2 : Apply to your code

이미지
 저번시간의 연장선으로 이번에는 nestjs에 https프로토콜을 적용하도록 하겠습니다.  위 화면은 key, cert.pem파일이 포함된 코드 입니다. NestJS에서 코딩하는 부분과 실행하는 부분이 다르기 때문에 src에 있는 .pem파일은 dist쪽으로 옮겨줘야 합니다.  $ mv cert.pem ../dist/ $mv key.pem ../dist/ // main.ts : /src/ import { NestFactory } from '@nestjs/core' ; import { AppModule } from './app.module' ; // NodeJS에 있는 모든 FileSystem을 // fs로 import 한다. import * as fs from 'fs' ; async function bootstrap () { // https옵션을 저장할 변수 // httpsOption을 생성한다. const httpsOptions = { // key, cert의 해당경로를 통해 read한다. // __dirname은 디렉토리 경로를 나타낸다. key : fs . readFileSync ( __dirname + '/key.pem' ), cert : fs . readFileSync ( __dirname + '/cert.pem' ), } const app = await NestFactory . create ( AppModule , { httpsOptions }); await app . listen ( 3000 ); } bootstrap (); 이제 main.ts부분의 코드를 추가하겠다. 일단 httpsOptions변수가 추가됬다. 이 변수안에는 key, cert 두개의 키값이 존재하는데 파일경로를 통해 읽은 문자열을 갖고있다. 파일경로는 cli로 옮긴 파일 경로를 작성하면 된다. ...

nest js -11 Turn Your Server url http to https1 : create certificate(key, cert.pem)

이미지
 안녕하세요. 기존의 NestJS는 http로 되어있습니다. 그대로 사용할수 있지만 보안이 중요한 웹사이트 같은경우는 위험할수 있습니다. 그래서 이번에는 지금까지 작성한 NestJS서버를 https프로토콜로 변경하도록 하겠습니다.  - 위 코드는 nest js - 1번 부터 10번까지 코딩한 자료를 바탕으로 만들었습니다. 자세한 코드는 블로그 글을 참고해 주시기 바랍니다. 일단 https프로토콜을 적용하기 위해서는 인증서가 필요합니다. 이번 글에서는 mkcert를 사용하여 인증서를 생성하도록 하겠습니다.  $ sudo apt install libnss3-tools $ wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 $ chmod +x mkcert $ sudo cp mkcert /usr/local/bin/ 이제 위와같이 cli작성이 마무리 되면 key, cert.pem파일을 생성할수 있다. 일단 인증발급기관을 추가합니다. 여기서는 mkcert입니다. $ mkcert -install 이제 해당 인증서를 생성합니다.  $ mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1 ::1 이제 해당 프로젝트 안에 key, cert.pem파일이 생긴것을 확인 할수 있습니다. 다음 글에서는 이걸로 실제 https프로토콜을 적용하고 사용을 하도록 하겠습니다.

nest js -10 Delete Particular member(parameter) in DB Record with TypeORM(DELETE)

이미지
// member.repository.ts : /src/members import { Member } from './member.entity' ; import { EntityRepository , Repository } from 'typeorm' ; // 내부에 에러가 발생시 사용. import { BadRequestException , InternalServerErrorException } from '@nestjs/common' ; // Member entity를 불러서 DB의 테이블 생성 @ EntityRepository ( Member ) export class MemberRepository extends Repository < Member > { // members.service.ts에 사용할 method생성 // Member를 생성한다. async createMember ( name : string , password : string , email : string , age : number , ) : Promise < Member > { // member record 생성 const member = new Member () // service에서 받은 정보를 record에 작성 member . name = name ; member . password = password ; member . email = email ; member . age = age ; try { // 작성한 record를 DB에 저장. await member . save (); } catch ( e...

nest js -9 Update Particular member(parameter) in DB Record with TypeORM(PUT)

이미지
이번 글에서는 존재하는 member의 정보를 수정하도록 하겠습니다. 이때도 memberId가 필요하고 params를 통해 받습니다. // member.repository.ts : /src/members import { Member } from './member.entity' ; import { EntityRepository , Repository } from 'typeorm' ; // 내부에 에러가 발생시 사용. import { InternalServerErrorException } from '@nestjs/common' ; // Member entity를 불러서 DB의 테이블 생성 @ EntityRepository ( Member ) export class MemberRepository extends Repository < Member > { // members.service.ts에 사용할 method생성 // Member를 생성한다. async createMember ( name : string , password : string , email : string , age : number , ) : Promise < Member > { // member record 생성 const member = new Member () // service에서 받은 정보를 record에 작성 member . name = name ; member . password = password ; member . email = email ; member . age = age ; try { // 작성한 record를 DB에 저장. await m...

nest js -8 List Particular member(parameter) in DB Record with TypeORM(GET)

이미지
  이번에는 특정 memberId를 이용하여 정보를 불러오겠다. // member.service.ts : /src/members import { Injectable } from "@nestjs/common" ; import { InjectRepository } from '@nestjs/typeorm' ; import { MemberRepository } from "./member.repository" ; import { Member } from "./member.entity" ; // controller에 method를 제공해 준다. @ Injectable () export class MembersService { constructor ( // DB를 사용하게 되서 더이상 members는 필요 없어졌다. @ InjectRepository ( MemberRepository ) private memberRepository : MemberRepository ) {} // DB구축전 테스트용 코드(DB설치후 삭제) //private members: Member_ver1[] = []; // DB에 있는 모든 member를 조회한다. async inquireAllMember (){ // find()은 쿼리문 SELECT * FROM members; // 이라고 보면 된다. return await this . memberRepository . find (); } // DB에 있는 모든 member를 조회한다. async inquireOneMember ( memberId : number ){ // find({id : memberId})은 쿼리문 // SE...