타닥타닥 개발자의 일상

connection error: MongoServerSelectionError: connect ECONNREFUSED ::1:27017 에러해결 본문

코딩 기록/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,
});

그러니까 잘 연결된다

Comments