ORM / TypeORM

yunny·2023년 1월 23일
0

westudy

목록 보기
6/15

ORM

Object-relational mapping
객체지향 프로그래밍(Object-Oriented-Programming)과 관계형 데이터베이스(Relational-Database)사이의 호환되지 않는 데이터를 변환하는 기술

ORM은 이렇게 서로 다른 객체와 관계형 데이터 시스템(RDBMS)을 연결해주는 중간 매개체

TypeORM은 ORM 서비스 중 하나, JavaScript & Typescript 와의 호환에도 용이, 확장성에 유리

TypeORM 설치

$ npm install typeorm      # typeorm 설치 명령어

설치 시, TypeORM - Mysql 연결이 안된다는 에러가 뜰 경우
TypeORM 삭제 -> mysql/mysql2 설치 -> TypeORM 드라이버 재설치

$ npm uninstall typeorm    # typeorm 삭제 명령어
$ npm install mysql        # mysql 설치 명령어
$ npm install mysql2       # mysql2 설치 명령어
$ npm install typeorm      # typeorm 설치 명령어

Dotenv 파일(.env)내 환경변수 설정법

TYPEORM_CONNECTION = mysql
TYPEORM_HOST = 127.0.0.1
TYPEORM_USERNAME = root
TYPEORM_PASSWORD = myPassword
TYPEORM_DATABASE = myDB
TYPEORM_PORT = 3306
TYPEORM_LOGGING =TRUE

TypeORM - Database 연결

1) dotenv 사용할 수 있도록 명령어 작성

const dotenv = require("dotenv")

dotenv.config()

2) typeorm을 DataSource모듈 불러오기

const { DataSource } = require('typeorm');

3) .env 파일에 저장해놓은 환경 변수들을 불러와 DataSource 명령어 통해서 DB와의 연결

4) initialize()메소드를 통해 실제 연결

const myDataSource = new DataSource({
    type: process.env.TYPEORM_CONNECTION,
    host: process.env.TYPEORM_HOST,
    port: process.env.TYPEORM_PORT,
    username: process.env.TYPEORM_USERNAME,
    password: process.env.TYPEORM_PASSWORD,
    database: process.env.TYPEORM_DATABASE
})

myDataSource.initialize()
    .then(() => {
        console.log("Data Source has been initialized!")
    })

갑자기 언급된 process 객체는 node.js에서 기본으로 설정되는 글로벌 객체
별도의 require 호출 없이 언제, 어디서든지 모든 모듈에서 접근 가능한 객체

profile
기록하지 않으면 잊어버려요 !

0개의 댓글

관련 채용 정보