코딩 기록/JavaScript
connection error: MongoServerSelectionError: connect ECONNREFUSED ::1:27017 에러해결
NomadHaven
2024. 5. 8. 10:07
app.js 파일에서 아래와 같은 코드로 mongoose와 mongodb 서버를 연결하려 했다.
코드 출처: https://github.com/Colt/YelpCamp/blob/c12b6ca9576b48b579bc304f701ebb71d6f9879a/app.js#L7
mongoose.connect('mongodb://localhost:27017/yelp-camp', {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true
});
그러니까 이런 오류가 나왔다.
connection error: MongoServerSelectionError: connect ECONNREFUSED ::1:27017
at EventTarget.<anonymous> (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongodb\lib\sdam\topology.js:289:34)
at [nodejs.internal.kHybridDispatch] (node:internal/event_target:741:20)
at EventTarget.dispatchEvent (node:internal/event_target:683:26)
at abortSignal (node:internal/abort_controller:368:10)
at TimeoutController.abort (node:internal/abort_controller:402:5)
at Timeout.<anonymous> (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongodb\lib\utils.js:976:92)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7) {
reason: TopologyDescription {
type: 'Unknown',
servers: Map(1) { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
setName: null,
maxElectionId: null,
maxSetVersion: null,
commonWireVersion: 0,
logicalSessionTimeoutMinutes: null
},
code: undefined,
[Symbol(errorLabels)]: Set(0) {},
[cause]: MongoNetworkError: connect ECONNREFUSED ::1:27017
at connectionFailureError (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongodb\lib\cmap\connect.js:353:20)
at Socket.<anonymous> (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongodb\lib\cmap\connect.js:268:44)
at Object.onceWrapper (node:events:629:26)
at Socket.emit (node:events:514:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
[Symbol(errorLabels)]: Set(1) { 'ResetPool' },
[cause]: Error: connect ECONNREFUSED ::1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 27017
}
}
}
C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongoose\lib\connection.js:875
err = new ServerSelectionError();
^
MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
at _handleConnectionErrors (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongoose\lib\connection.js:875:11)
at NativeConnection.openUri (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongoose\lib\connection.js:826:11)
at runNextTicks (node:internal/process/task_queues:60:5)
at listOnTimeout (node:internal/timers:538:9)
at process.processTimers (node:internal/timers:512:7) {
reason: TopologyDescription {
type: 'Unknown',
servers: Map(1) {
'localhost:27017' => ServerDescription {
address: 'localhost:27017',
type: 'Unknown',
hosts: [],
passives: [],
arbiters: [],
tags: {},
minWireVersion: 0,
maxWireVersion: 0,
roundTripTime: -1,
lastUpdateTime: 5756880,
lastWriteDate: 0,
error: MongoNetworkError: connect ECONNREFUSED ::1:27017
at connectionFailureError (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongodb\lib\cmap\connect.js:353:20)
at Socket.<anonymous> (C:\Program Files\Web Developer Bootcamp\Web-Developer-Bootcamp\section39-YelpCamp\node_modules\mongodb\lib\cmap\connect.js:268:44)
at Object.onceWrapper (node:events:629:26)
at Socket.emit (node:events:514:28)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
[Symbol(errorLabels)]: Set(1) { 'ResetPool' },
[cause]: Error: connect ECONNREFUSED ::1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 27017
}
},
topologyVersion: null,
setName: null,
setVersion: null,
electionId: null,
logicalSessionTimeoutMinutes: null,
primary: null,
me: null,
'$clusterTime': null
}
},
stale: false,
compatible: true,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
setName: null,
maxElectionId: null,
maxSetVersion: null,
commonWireVersion: 0,
logicalSessionTimeoutMinutes: null
},
code: undefined
}
그래서 몽구스와 mongodb를 연결하는 코드에서 주소를 아래와 같이 바꿨다.
mongoose.connect("mongodb://127.0.0.1:27017/yelp-camp", {
useNewUrlParser: true,
// useCreateIndex: true,
useUnifiedTopology: true,
});
그러니까 잘 연결된다