본문 바로가기

devLog/daylife

20200918

그동안 sequelize-typescript 레퍼런스를 번역하고 이해하느라 프로젝트를 진행하지 못했다.

아직 번역이 완성되지는 않았지만 가장 필요하다고 생각되었던 관계까지 끝내 오늘부터 다시 프로젝트를 이어가게 되었다.

(다음 주에 만약 새로운 프로젝트를 해야 된다면 (이것보다 우선도가 매우 높다) 이 프로젝트는 다시 휴면 상태에 들어갈지도 모른다)

오늘은 sequelize-typescript를 완성하려 한다.

 

일단 레퍼런스 문서를 번역했을 때 완성한 뒤의 작업에 대해서 찾지 못했다. 

지금 시도해볼 만한 것은 

1. 컴파일

  -> 타입스크립트를 js로 컴파일하면 sequelize 파일이 생성

2. 그냥 시퀄라이즈를 실행시키는 경우

이 두가지라 생각하고 1번부터 진행해봤다. 

 

시작하기 이전에 데이터베이스를 만들어주었다. (비밀번호를 잊어 여기까지 시간이 많이 걸렸다)

 

tsc를 입력하여 컴파일했더니 dist파일에 sequelize js파일이 생겼다. 

근데 lib 파일에 생성된 js파일이 __TestDB__에 접근하고 있어 이상함을 느끼고 src/__TestDB__를 삭제했다.

 

이렇게 되어있는 것을 봤다. (저번에 잘못된 파일에서 작업해줘서 이 꼴이 난 거 같다)

역시나 다른 부분에서도 문제가 발생되어 src/__TestDB__를 삭제하고 진행하기로 했다. 테스트 데이터베이스는 나중에 다른 방법을 생각해봐야겠다. (config를 확인해봐야겠다)

 

결국 에러가 발생한 부분들을 수정하고 다시 컴파일해주었다.

 

그 뒤 제대로 생성됐는지 확인하고 싶어 migration이 필요할 것이라 생각하고 해 주었다.

근데 안됐다... 

 

일단 서버를 작성하고 같이 진행하면 될까 싶어 DB는 여기까지 보류하고 진행하게 되었다. 

 

 

app.ts를 작성해주었다. 

sequelize-typescript의 repository mode를 사용했기 때문에 controllers 폴더에 API를 만들 필요 없이 모델들이 있는 파일에 제작해주면 된다. 

이 부분에 대해서 감을 잡아야 하기 때문에 원래라면 API docs부터 정리하고 진행했겠지만 일단은 회원가입/로그인 기능부터 구현해주기로 했다 (간단한 것만 구현할 예정이라 session이나 jwt는 아직 사용하지 않을 것이다)

 

 

에러 발생

 

{}로 내부에 json 객체를 넣는 것으로 착각했다. 

사실 함수를 선언하는 것이었고, ()로 고쳐주었다.

 

이제 API를 추가해줄 차례다. 회원가입부터 생성하 기로하고 '/signup'경로에 post요청으로 추가해주었다.

 

findOrCreate 함수가 있는지 확인하기 위해 일단 쳐봤다. 

결과를 받기 위해서. then을 사용하라고 되어있어 그대로 작성해주었다.

result의 타입을 지정해주지 않아 에러가 발생했다.

저 부분에 어떤 타입이 오는지 현재로써는 알 수가 없었다. 

그래서 일단 any타입으로 두고, 결과가 오는 것을 확인 한 뒤 변경이 필요한지 알아보려 한다.

이렇게 에러는 사라졌다.

 

npm start로 테스트를 해봤지만 역시나 에러가 발생했다.

npm start의 명령을 수정해주었다. 

"node -r ts-node/register index.ts" ->"tsc && node dist"

ts 파일을 실행해주는 방법에서 컴파일 후 js파일을 실행해주는 방법으로 변경했다. 

 

서버가 실행되는 모습을 postman으로 확인했다.

하지만 회원가입의 라우터로는 실행되지 않았다. 제대로 기능을 넣어주지 않아 발생한 문제라고 생각한다. 

먼저 API docs를 정리하면서 라우터를 분리하고 어떤 기능을 만들지 기획한 뒤에 해야겠다. 

 

오늘은 여기까지

'devLog > daylife' 카테고리의 다른 글

20200914  (0) 2020.09.15
20200911  (0) 2020.09.12
20200910  (0) 2020.09.10
20200909  (0) 2020.09.09