-
1월 5일~6일 - 웹 사이트 만들기(5) - sequelize 코드 실행시키기공부/웹 사이트 개발(끝) 2021. 1. 5. 19:41
오늘 맨정신으로 알아보니 sequelize-typescript와 sequelize에 @types/sequelize를 사용하는 건 다른 라이브러리라고 한다...
sequelize-typescript는 사람들이 안 쓰는 건 아니지만 나온지 얼마 안 된 거 같으니 sequelize를 사용하는 것으로....
필요한 라이브러리 설치
npm install -S sequelize
npm install -S mysql2
npm install -D @types/mysql2
npm install -D @types/sequelize
기존에는 mysql을 설치했었는데 알고보니 mysql은 deprecated됐고 mysql2 모듈을 사용해야 한다고 한다.
npm uninstall mysql
npm uninstall @types/mysql
코딩
1. sequelize.org/master/manual/typescript.html에 있는 첫 번째 회색상자 복사에서 app.ts 파일에다가 복붙한다.
2. UserAttributes 인터페이스에 맞게 + createdAt, updateAt, deletedAt 컬럼을 datetime 타입으로 테이블을 만든다. (다른 테이블도 만들고 싶으면 만들어도 됨 도입해보는 게 목적이라 User 테이블만 생성하고, User.create만 실험했음)
3. 사용하고 싶은 곳에서 User.create를 한다.
4. 끝
다만 요 과정에서 Class constructor Model cannot be invoked without 'new'
라는 에러가 발생하는데, 이는 tsconfig.json에서compilerOptions의 target을 es6로 바꿔주면 된다.(나는 es5였다.)
이거 자세한 원인은 공부할 리스트에 적어두고 담에 하자.
짜잘
ts-node라는 패키지가 있는데 ts-node app.js같은 식으로 실행하면 메모리상에서 타입스크립트를 transpile하여 바로 실행할 수 있게 해준다고 한다. (참고 - cosmiclatte.co.kr/nodejs-%EC%97%90%EC%84%9C-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8typescript-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/)
@types/node를 설치해야하는 이유는 node.js의 타입 정의를 제공해주기 때문(아마도 기본적으로 사용하는 함수들에 대한 타입을 말하는 게 아닐까 싶음)
'공부 > 웹 사이트 개발(끝)' 카테고리의 다른 글
1월 9일 - 웹 사이트 만들기(7) - 1월 첫째 주 결산 (0) 2021.01.10 1월 7일 - 웹 사이트 만들기(6) - graphQL 쿼리 날려보기, 결과물 sequelize로 반환하기 (0) 2021.01.07 1월 4일 - 웹 사이트 만들기(4) - 각종 스택 결정하기 (0) 2021.01.04 9월 26일 - 웹 사이트 만들기(3) - axios 사용해서 express 서버에 데이터 요청 (0) 2020.09.26 9월 23일 - 웹 페이지 만들기(2) (0) 2020.09.24