반응형
1. TypeORM
- node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리.
- 여러 데이터 베이스 지원(PostgreSQL, MariaDB, MySQL, SQLite, MS SQL Server)
2. ORM (Object Relational Mapping)
- 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업.
- ORM을 이용한 개발은 객체와 데이터 베이스의 변형에 유연하게 사용할 수 있음.
- 관계형 데이터 베이스 : 테이블 사용.
- 객체지향 프로그래밍 : 클래스 사용.
//TypeORM
const boards = Board.find({ title: 'Hello', status: 'PUBLIC'});
//Pure javascript
db.query('SELECT * FROM boards WHERE title = "Hello" AND status = "PUBLIC"', (err, result) =>
{
if(err){
throw new Error('Error')
}
boards = result.rows;
}
)
3. TypeORM 특징과 이점
- 모델을 기반으로 데이터베이스 테이블 체계를 자동으로 생성함.
- 데이터베이스에서 개체를 쉽게 삽입, 업데이트 및 삭제할 수 있음.
- 테이블 간의 매핑(일대일, 일대다, 다대다)를 만듦.
- 간단한 CLI 명령을 제공.
- TypeORM은 간단한 코딩으로 ORM 프레임워크를 사용하기 쉬움.
- TypeORM은 다른 모듈과 쉽게 통합됨.
4. Install 모듈
//nest에서 TypeORM을 사용하기 위해 연동시켜주는 모듈
@nestjs/typeorm
//TypeORM 모듈
typeorm
//postgres모듈
pg
참고 doc
5. Entity
- @Entity() 는 클래스가 엔티티임을 나타내는데 사용됨.
- @PrimaryGeneratedColumn()은 id가 기본키임을 나타내는데 사용됨.
- @Column()은 열을 나타내는데 사용됨.
- @EntityRepository()는 클래스를 사용자정의 저장소로 선언하는데 사용됨.
6. TypeORM 제공하는 메서드
https://typeorm.io/repository-api
반응형
'Node ( + nest.js)' 카테고리의 다른 글
[nestjs] 06. 미들웨어 (Middleware) (1) | 2023.01.14 |
---|---|
[nestjs] 05. 카카오 본인인증 (passport-kakao) (0) | 2023.01.14 |
[nestjs] 04. 모듈생성부터 인증(JWT, PASSPORT)까지 (0) | 2023.01.14 |
[nestjs] 02. Pipe - 파이프 (1) | 2023.01.14 |
[nestjs] 01. 프로젝트, 모듈 만들기(CRUD Generator) (0) | 2023.01.14 |