[ 프로젝트 ] typeorm으로 db 연결
참고
1. typeORM 공식 홈페이지 : Example with Express
2. TypeScript-Node-Starter : 타입스크립트로 서버 구성하면서 계속 참고할 예정
3. velog 글
서버를 구상하면서 DB와 어떻게 연결할 것인지에 대한 고민끝에 typeORM
을 사용하기로 하였다. sequelize-typescript도 후보군에 있었다. 그렇지만
- typeORM의 문서가 더 알아보기 용이했으며
- typeORM이 더 typescript를 잘 활용한다는 stackoverflow의 답변과
- npm trends에서의 압도적인 차이
를 고려했을 때, typeORM
을 사용하는 것이 적합하다고 결론내렸다. (각 장단을 확실하게 알고 사용하면 좋았겠지만, typescript와 동시에 공부하며 적용해야하는 입장에서 문서가 알아보기 쉽다는 것은 너무 큰 장점이었다.)
아래는 오늘 설정한 것들이다.
1. ormconfig.js
공식문서에는
.json
확장자를 사용하라고 되어있었지만.js
를 사용해서dotenv
로 민감한 정보를 가리기로 결정하였다.
- synchronize option은 서버 재실행 될 때마다. 내가 작성한 데이터베이스 스키마와 강제로 일치시키는 옵션이다.
- logging option은 생성된 쿼리가 콘솔에 계속 찍히는 옵션이다.
2. tsconfig.json
주석때문에 글자가 작게나왔다. ..😵💫
"emitDecoratorMetadata": true, "experimentalDecorators": true
이 두 가지 옵션을 새로 설정해주었다.
emitDecoratorMetadata
는reflect-metadata
라는 라이브러리와 (typeORM의 설명에서 설치하라 되어있다.) 연동된 설정이다
experimentalDecorators
는 위 설정을 활성화하려면 필요했다.둘 다 decorator와 관련된 설정이라는 것은 알겠지만 metadata에 대해서는 아직 모르겠다. 우선 설정하고 넘어갔다.
App.ts
User라는 entitiy를 만들었다.
(mysql에서는 table에 대응된다)그리고 app.js가 실행될 때, db와 연결시키는 코드를 작성하였다.
( 잘 되었는지 확인하기 위해 user와 연결을 한번 시켜보았다.)
entity/User.ts
공식 문서의 예시를 그대로 붙였다.
(내일부터 옵션들에 대해 공부해야한다.)
(여기 데코레이터들이 있는데 이것을 사용하기 위해 tsconfig에 설정을 바꿔준 것이다.)
Author And Source
이 문제에 관하여([ 프로젝트 ] typeorm으로 db 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vagabondms/프로젝트-typeorm으로-db-연결저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)