[바미] typeorm에 대해 알아보자!
·
프로그래밍(Web)/Javascript(TS,Node)
참고사이트 TypeOrm (object Relational Mapping) TypeORM 에서 ORM 기본, NativeScript, 박람회 및 전자 플랫폼 반응, NodeJS, 브라우저, 코르도바, 폰갭, 이온 성에서 실행할 수 있으며, 타이프 라이터와 자바 스크립트 (ES5, ES6, ES7, ES8)와 함께 사용할 수 있습니다. 이 솔루션의 목표는 항상 최신 JavaScript 기능을 지원하고 몇 가지 테이블이있는 소규모 응용 프로그램부터 여러 데이터베이스가있는 대규모 엔터프라이즈 응용 프로그램에 이르기까지 데이터베이스를 사용하는 모든 종류의 응용 프로그램을 개발하는 데 도움이되는 추가 기능을 제공하는 것입니다. ORM 이란? Object Relational Mapping, 객체-관계 매핑 객체와 ..
[바미] JMT이 아닌 JWT에 대해 알아보자!
·
프로그래밍(Basic)/이론
세션 기반 인증 방식옛날에 토큰 기반 인증이 없었을 때 서버 세션을 사용해 인증을 했습니다.클라이언트가 로그인성공하면 서버가 유저 세션을 만들고 메모리나 데이터베이스에 저장한다.서버가 클라이언트에게 세션 ID를 보낸다.클라이언트의 브라우저에 세션의 ID만 쿠키에 저장하게 한다.세션 데이터가 서버의 메모리에 저장되므로, 확장 시 모든 서버가 접근할 수 있도록 별도의 중앙 세션 관리 시스템이 필요합니다.세션 기반 인증 방식 단점중앙 세션 관리 시스템이 없으면, 시스템 확장에 어려움이 생깁니다.중앙 세션 관리 시스템이 장애가 일어나면, 시스템 전체가 문제가 생깁니다.만약 메모리에 세션 정보가 들어있다면, 메모리가 많이 사용될 수 있습니다.규모 확장이 필요없는 소규모 프로그램 작성에서는 세션 기반 인증 방식을 ..
[바미] Typescript-restful-starter - Plan 부분 실행.
·
프로그래밍(Web)/Javascript(TS,Node)
수정 사항. 여기 Plan부분 시행. name외에도 age, phonenumber와 같은 데이터를 추가 할 수 있도록 수정. 기존 데이터에서 1번에서 추가한 컬럼 값들을 넣지 않은 데이터들이 Update될 수 있도록 수정. Create로 생성된 데이터 중 입력한 이름을 가진 데이터, 입력한 나이를 가진 데이터, 입력한 전화번호를 가진 데이터, 등을 검색하여 조회 할 수 있도록 수정. 코드 Sample.controller.ts // select -> routes/Sample.route.ts 참조. public async find5(): Promise { const { age } = this.req.params as unknown as { age: number }; const sample = await th..
[바미] Typescript-restful-starter - DB 컬럼 중 'name'값을 추가하여 id, text, email외에도 name값을 추가 할 수 있도록 수정해보자!
·
프로그래밍(Web)/Javascript(TS,Node)
수정사항 DB 컬럼 중 'name'값을 추가하여 id, text, email외에도 name값을 추가 할 수 있도록 수정. 변경 전 Sample.controller.ts // input -> routes/Sample.route.ts 참조. public async create(): Promise { const { text, email} = this.req.body as { text: string, email: string}; this.sample.text = text; this.sample.email = email; try { const result = await this.sampleService.save(this.sample); return this.res.status(200).send(result); }..
[바미] Typescript-restful-starter - Update 될 때 텍스트뿐만 아니라 이메일도 수정 할 수 있게 변경하기!
·
프로그래밍(Web)/Javascript(TS,Node)
코드 수정 전 Sample.schemas.ts import { number, object, string } from "joi"; /* 구조 정의 */ export const createSample = object().keys({ text: string().required(), email: string().required(), }); export const updateSample = object().keys({ id: number().required(), text: string().required(), }); export const deleteSample = object().keys({ id: number().required(), }); 코드 수정 후 Sample.schemas.ts import { num..
[바미] Typescript-restful-starter - services에 있는 코드와 repository에 있는 코드의 차이점에 대해 알아보자.
·
프로그래밍(Web)/Javascript(TS,Node)
이 부분에 대해 궁금하여 물어본 내용을 답변을 받아 적었습니다. Sample.repository.ts import { EntityRepository, Repository } from "typeorm"; import { Sample } from "../models"; @EntityRepository(Sample) export class SampleRepository extends Repository { public bulkCreate(Samples: Sample[]): Promise { return this.manager.createQueryBuilder().insert().into(Sample).values(Samples).execute(); } public async removeById(id: numb..
[바미] Typescript-restful-starter - 이메일을 json데이터에 입력하여 생성하기
·
프로그래밍(Web)/Javascript(TS,Node)
코드 수정 Create 될 때 정적으로 이메일 데이터를 받는 것을 동적으로 이메일을 json데이터에 입력하여 생성할 수 있도록 수정함. 코드 수정 전 Sample.schemas.ts import { number, object, string } from "joi"; /* 구조 정의 */ export const createSample = object().keys({ text: string().required(), }); export const updateSample = object().keys({ id: number().required(), text: string().required(), }); export const deleteSample = object().keys({ id: number().requir..
[바미] Typescript-restful-starter 코드 분석해보기 !
·
프로그래밍(Web)/Javascript(TS,Node)
본 글은 github.com/camesine/Typescript-restful-starter camesine/Typescript-restful-starter Node.js + ExpressJS + Joi + Typeorm + Typescript + JWT + ES2015 + Clustering + Tslint + Mocha + Chai - camesine/Typescript-restful-starter github.com 의 코드를 가지고 TypeScript를 처음 공부 하였을 때 정리 해놓은 것을 써놓은 글입니다. 혹여나 코드의 해석이 틀릴 수 있으므로, 유의 하시기 바랍니다. app/controllers 코드 분석 ContController.ts req, res 설정 부분 import * as exp..
[바미] 한 눈에 보는 타입스크립트
·
프로그래밍(Basic)/Javascript(TS,Node)
변경사항 2020년 2월 다음 파트들을 추가했습니다. keyof 타입 별칭(Type Aliases) 일부 내용과 오타 등을 수정했습니다. 2020년 3월 다음의 파트들을 추가했습니다. 알 수 없는 타입(Unknown) 인터섹션(Intersection) 함수 타입 클래스 타입 인터페이스 확장 함수 this 명시적 this 오버로드(Overloads) 목차 흐름을 위해 ‘인덱스 시그니처(Index signature)’ 파트 제목을 삭제했습니다.(내용은 삭제하지 않았습니다) 일부 내용과 오타 등을 수정했습니다. 2020년 4월 다음의 파트들을 추가했습니다. TS Node 모듈 내보내기(export)와 가져오기(import) 모듈의 타입 선언(Ambient module declaration) Definitely..
Bami
기록하며 성장하기