Error 발생
오류가 발생하게된 코드는 아래와 같다.
const mongoose = require("mongoose");
// localhost의 27017 포트 번호로 MongoDB와 연결합니다.
// Database Name은 todo-demo 입니다.
mongoose.connect("mongodb://localhost:27017/todo-demo",{
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(value => console.log("MongoDB 연결에 성공하였습니다."))
.catch(reason => console.log("MongoDB 연결에 실패하였습니다."))
const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
module.exports = db;
MongoDB와 연결하는 과정에서 세 가지의 에러가 떴다.(첫번째는 에러라고 보기 어렵다)
하나는,
이러한 오류였고,
이 문제를 해결하고 나니
이러한 에러가 발생했다.
그리고 이 에러에서 벗어나니 다음의 에러가 발생했다.(이 에러는 무시해도 된다. local host뒤에 27017을 127.0.0.1로 잘못 적어서 생긴 에러다)
[MONGODB DRIVER] Warning: useNewUrlParser is a deprecated option 해결
해석을 해보면 다음과 같다.
[MONGODB DRIVER] 경고: useNewUrlParser는 더 이상 사용되지 않는 옵션입니다. useNewUrlParser는 Node.js 드라이버 버전 4.0.0 이후에는 적용되지 않습니다. 다음 메이저 버전에서는 삭제될 예정입니다.
이처럼 현재 버전에서는 적용되지 않는 것이기에 연결 시의 옵션 두 가지를 지워주면 해결된다.
// 이 부분 지워주기
,{useNewUrlParser: true,
useUnifiedTopology: true,}
connection error: MongoServerSelectionError: connect ECONNREFUSED ::1:27017 해결
위의 에러를 하고 나니 위와 같은 에러가 생겼다.
다른 블로그들을 돌아다니며 해결책을 찾았다.
localhost를 127.0.0.1로 바꿔주라는 것이었다. 해결책이 생각보다 간단해서 바로 바꿔줬다.
const mongoose = require("mongoose");
// localhost의 27017 포트 번호로 MongoDB와 연결합니다.
// Database Name은 todo-demo 입니다.
mongoose.connect("mongodb://127.0.0.1:27017/todo-demo")
.then(value => console.log("MongoDB 연결에 성공하였습니다."))
.catch(reason => console.log("MongoDB 연결에 실패하였습니다."))
const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
module.exports = db;
생각보다 쉽게 정상적으로 작동한다.
이 문제를 처음에는 잘못적어서 localhost:127.0.0.1로 적었는데 그게아니라 127.0.0.1:27017 로 적어야 한다. 잘못 적게되면 나처럼 세 번쨰 오류를 만난다.
잘못 적어서 생긴 오류를 해결하는 과정 중에 MongoDB를 연결할 수 있는 새로운 방법도 찾았다.
mongoose.connect( "mongodb://0.0.0.0:27017" ). then (() => {
console.log( "데이터베이스 연결됨)).catch((err) => {
console.log(" 데이터베이스에 연결하는 동안 오류가 발생했습니다 . ",err)
})
127.0.0.1:27017 이 아닌 0.0.0.0:27017로 적어도 문제없이 MongoDB와 연결되는 것을 확인할 수 있다.
참고
https://codingapple.com/forums/topic/usenewurlparse/
https://mingg123.tistory.com/129
https://blog.devgenius.io/mongoserverselectionerror-connect-econnrefused-1-27017-bee70efd1cac
'Error' 카테고리의 다른 글
[Error] yarn: command not found 에러 (Window) (1) | 2023.12.01 |
---|---|
Rest / Thunder Client 무한 waiting.. (1) | 2023.11.24 |
SyntaxError: Unexpected token } in JSON at position 68 (0) | 2023.11.22 |
[Git] ssh: connect to host github.com port 22: Connection timed out 에러 (4) | 2023.11.13 |
[Port Error] Error: listen EADDRINUSE: address already in use :::8080 에러 해결 (1) | 2023.11.09 |