JavaScript

[MongooseError] Mongoose.prototype.connect() no longer accepts a callback 에러

효진인데요 2023. 10. 2. 18:05

 

 

 

0. Mongoose란

Mongoose를 간단하게만 소개하자면,

Mongo DB ODM 중 가장 유명하고 많이 쓰이는 자바스크립트 객체 지향 프로그래밍 라이브러리라고 한다.

 

ODM
  • Object Document Mapping
  • 객체와 문서를 1대 1 매칭한다는 의미
  • Object - 자바스크립트의 객체 / Document - 몽고 DB의 문서
  • 즉, 문서를 DB에서 조회할 때 자바스크립트 객체로 바꿔주는 역할을 하는 것

 

 

 

 

1. 오류 발생 배경

 

 

Node.js 교과서를 보고 공부하던 도중 서버를 실행시켜보려 했는데 에러가 떴다.

 

 

 

오류 메세지를 읽어보면 connect 함수가 더 이상 콜백을 지원하지 않는다는 것이었다. OwO...

 

 

 

 

2. 원인 및 해결

 

 

찾아보니

이전에는 connect 함수와 콜백 함수를 사용했지만, 

Mongoose 6.x 버전부터는 then과 catch를 사용하는 프로미스를 반환한다고 한다.

 

 

** 이전버전

mongoose.connect('mongodb://localhost/mydatabase', function(err) {
  if (err) {
    throw err;
  }
  // 연결 성공 시 수행할 작업
});

 

 

 

** Mongoose 6.x 이후 버전

 

mongoose.connect('mongodb://localhost/mydatabase')
  .then(() => {
    // 연결 성공 시 수행할 작업
  })
  .catch(err => {
    // 오류 처리
    console.error(err);
  });

 

 

 

package.json에 가서 버전을 확인해보았다.

음.. 버전이 많이 높아졌구나.....

 

 

 

 

 

 

코드를 적절히 수정해보았는데 버전 관련 오류가 다른데에서도 많이 발생해 일단 몽구스 버전을 낮추기로 했다.


전버전으로 회춘

 

 

이제 다른 오류 해결하러 가야겠다.. ^^7

728x90