Typescript + Node.js 환경에서 mongoose를 이용해 mongoDB와 연결하는 과정에서 알 수 없는 에러가 발생했다.
이전에 작업하던 같은 구성의 Javscript 환경에서는 문제없이 잘 연결 되었기에, 처음에는 ts-node나 프로젝트 설정에 문제가 있는 줄 알았다. 하지만 이것저것 시도해도 해결되지 않았다.
그러다가 stack overflow에서 다음 해결법을 발견했다. (https://stackoverflow.com/a/69857909)
mongoDB가 설치된 경로에서 mongod --ipv6
명령으로 mongoDB 콘솔을 실행한 후 다시 시도하니 연결이 정상적으로 된다.
하지만 이 경우 콘솔을 따로 실행해두어야 하고, MongoDBCompass에 DB 변경 사항이 보이지 않는다.
07.01 추가
mongoose 패키지 버전을 5.5.5로 낮추어 설치했더니 정상적으로 연결된다. 오류가 발생한 버전은 6.4.1 버전이었다. 사용법이 바뀌었거나 다른 패키지와 충돌하는 것 같다.
Typescript 환경에서 사용하는 경우 @types/mongoose 패키지도 동일한 버전으로 낮추어 설치해야 한다.
23.06.20 추가
.env 파일의 mongoDB 연결 URI에서 localhost
대신 0.0.0.0
으로 써주면 해결된다. 아마 버전이 오르면서 문법이 바뀐 것 같다.