Sequelize 시작하기

시퀄라이즈 시작하기

프로젝트 생성하기

시퀄라이즈란 ORM(Object-relational Mapping)의 한 종류로 분류되며 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑하는 도구이다.

시퀄라이즈에서 사용 할 수 있는 데이터베이스는 이번에 사용 할 Mysql외에도 Postgresql, MariaDB, SqliteDB 등이 있다.

이러한 시퀄라이즈를 사용하는 이유는 SQL을 알지 못하더라도 자바스크립트 문법만으로 SQL이 가능하다는 장점이 있다. 하지만 기본적인 SQL을 모르고 사용하는 것을 권장하지는 않는다.

기본적인 문법은 알아야 시퀄라이즈 사용에 큰어려움이 없다.

자세히 보기

NodeJs Router

Node.js Router 알아보기.

라우팅이란

라우팅은 애플리케이션 엔드 포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 의미하고 있습니다.
예를 들어 다음과 같은 라우터가 있다면

1
2
3
4
5
6
7
const express = require('express');
const app = express();

// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world');
});
자세히 보기

NodeJs express

Node.Js를 알게 된지 반년이 넘어가는데 이제야 깃 블로그를 시작한 본인이 너무 바보 같지만 지금까지 공부한 것들을 블로그를 통해 기록하려한다.. 너무 많은게 문제지만 하나하나
정리해 나가야 겠다.

NodeJs express 시작하기

npm init 명령어 실행 후 터미널에서 express 패키지를 install 한다.

1
npm install express\
자세히 보기

TypeOrm Test

TypeOrm을 사용하여 엔티티를 생성하고 관계를 설정해보는 것 까지 이번 포스팅에서 진행 해보도록 합니다.🤐

먼저 typeorm을 사용하기위해 서버를 구동해야 하는데… 간단하게 하려 했지만 기존에 하던 곳에서 하는게 가장 편하다고.. 저는 Nest서버에서 실행 하기로 했습니다..
도저히 다른곳에서 시작하기가…

NestJs 와 TypeOrm 연동 포스팅은 나중에 진행 하기로 하고 지금은 엔티티생성 관계 설정까지만!!!

먼저 User 엔티티를 만들어보도록 합니다. 최대한 간단하게 ㅎ

자세히 보기

TypeOrm Relation

TypeOrm Relation

TypeOrm 엔티티 파일을 만들어보고 관계를 설정 해보려 한다.
먼저 공식문서를 통해 관계 설정 방식에 대해 참고 하여 작성하였다..

Relations

  • 1 : 1 = @OneToOne
  • 1 : N = @OneToMany
  • N : 1 = @ManyToOne
  • N : N = @ManyToMany

OneToOne

서로 1 대 1로 관계를 맺는 모델에 사용한다.

  • 관계를 설정 할 모델의 타겟을 지정하여 연결이 가능하다.
  • 단방향 / 양방향 모두 가능하다.

OneToMany & ManyToOne

1 대 다, 다 대 1 관계를 맺는 모델에 사용한다.

  • OneToMany와 ManyToOne 은 반드시 함께 설정해야 한다.
  • @JoinColumn 옵션 생략이 가능하다. 이렇게 되면 ManyToOne 쪽에 foriegn Key가 생성된다.

ManyToMany

서로 다 대 다로 관계를 맺는 모델에 사용한다.

  • @JoinTable 옵션 사용이 필수적이다.

Relation Options

  • Cascade : 설정 시 두 테이블간의 영속성이 설정됨
  • JoinColumn : 참조 키 컬럼을 지정하여 생성 할 수 있다.
  • JoinTable : 다대다 관계의 중간 테이블을 생성한다.

참고문서
공식문서.

TypeOrm Entity

Create TypeOrm Entity

엔티티는 데이터베이스 테이블에 매핑되는 클래스 입니다. 새로운 클래스를 정의하고 @Entitiy() 표시로 엔티티를 생성할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";

@Entity()
export class User {

@PrimaryGeneratedColumn()
id: number;

@Column()
firstName: string;

@Column()
lastName: string;

@Column()
isActive: boolean;

}
자세히 보기

TypeOrm 시작하기.

TypeOrm 이란

TypeORM은 자바스크립트와 함께 사용이 가능하며 Node JS, 브라우저 등을 지원하고 소규모 애플리케이션 부터 대규모 애플리케이션 까지
데이터 베이스를 사용하는 모든 종류의 애플리케이션을 개발하는 데 도움이 되는 추가 기능을 제공하는 것이다.
TypeORM은 다른 모든 javascript ORM과 달리 Active Record 및 Data Mapper 패턴을 모두 지원한다 즉, 가장 생산적인 방식으로 고품질의 느슨하게 결합 된 확장 가능하고 유지 관리 가능한 애플리케이션을 작성할 수 있다.

자세히 보기