Git安装服务端依赖时,出现mongodb连接错误怎么办

Git安装服务端依赖时:
使用npm命令安装项目的依赖文件,
进入koa2-mongodb-jwt-server文件夹,输入:npm i


E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server>npm run dev

> Pricer-Server-v2@0.1.0 dev
> nodemon src/bin/www.js

[nodemon] 2.0.22
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `babel-node src/bin/www.js`
  14:05:37:659 DEBUG Creating server... (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\src\lib\server.js:58)
  14:05:38:113 DEBUG startup Server created, ready to listen (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\src\lib\server.js:126)
  14:05:38:130 DEBUG Server listening on 5001 in development mode (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\src\bin\www.js:11)
MongoDB 连接错误: MongoServerSelectionError: getaddrinfo ENOTFOUND mongo
    at Timeout._onTimeout (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\node_modules\mongodb\src\sdam\topology.ts:564:30)
    at listOnTimeout (node:internal/timers:569:17)
    at processTimers (node:internal/timers:512:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) { 'mongo: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) {}
}
E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\node_modules\mongoose\lib\connection.js:755
    err = new ServerSelectionError();
          ^

MongooseServerSelectionError: getaddrinfo ENOTFOUND mongo
    at _handleConnectionErrors (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\node_modules\mongoose\lib\connection.js:755:11)    at NativeConnection.openUri (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\node_modules\mongoose\lib\connection.js:730:11)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at runNextTicks (node:internal/process/task_queues:64:3)
    at listOnTimeout (node:internal/timers:538:9)
    at processTimers (node:internal/timers:512:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) {
      'mongo:27017' => ServerDescription {
        address: 'mongo:27017',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 405211935,
        lastWriteDate: 0,
        error: MongoNetworkError: getaddrinfo ENOTFOUND mongo
            at connectionFailureError (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\node_modules\mongodb\src\cmap\connect.ts:513:14)
            at Socket. (E:\html5\VS Code\Git\code\koa2-mongodb-jwt-server\node_modules\mongodb\src\cmap\connect.ts:415:16)
            at Object.onceWrapper (node:events:628:26)
            at Socket.emit (node:events:513:28)
            at Socket.emit (node:domain:489:12)
            at emitErrorNT (node:internal/streams/destroy:151:8)
            at emitErrorCloseNT (node:internal/streams/destroy:116:3)
            at processTicksAndRejections (node:internal/process/task_queues:82:21) {
          cause: Error: getaddrinfo ENOTFOUND mongo
              at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
            errno: -3008,
            code: 'ENOTFOUND',
            syscall: 'getaddrinfo',
            hostname: 'mongo'
          },
          [Symbol(errorLabels)]: Set(1) { 'ResetPool' }
        },
        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
}

Node.js v18.14.2
[nodemon] app crashed - waiting for file changes before starting...




不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt: 首先,我们需要确认一下出现mongodb连接错误的具体情况,以此来确定解决方案。如果是因为mongodb服务未启动或配置错误导致的连接错误,我们可以按照以下步骤来解决: 1. 确认mongodb服务是否启动。我们可以在命令行中输入`mongo`命令来连接mongodb服务,如果连接成功,说明mongodb服务已经启动;反之,则需要启动mongodb服务。可以在命令行中输入以下命令来启动mongodb服务: ``` sudo service mongod start ``` 2. 确认mongodb服务的配置信息是否正确。我们可以查看mongodb配置文件中是否存在错误或未配置的部分。默认情况下,mongodb的配置文件位于`/etc/mongod.conf`,我们可以使用以下命令查看配置文件的内容: ``` sudo cat /etc/mongod.conf ``` 如果配置文件中存在错误或未配置的部分,我们需要将其更正或添加配置信息。 3. 确认mongodb服务监听的端口是否正确。我们可以使用以下命令查看mongodb服务监听的端口是否为默认端口27017,并确认端口是否处于监听状态: ``` sudo netstat -anp | grep mongod ``` 如果端口不是27017或端口未处于监听状态,我们需要将其更正或重新启动mongodb服务。 如果上述方法仍然无法解决问题,我们可以考虑卸载并重新安装mongodb服务,或者通过其他方式检查和修复mongodb服务的相关配置和日志信息。 另外,如果mongodb连接错误是由于其他原因导致的,比如安装的mongodb驱动版本不兼容,我们可以尝试更新mongodb驱动版本或更换为其他的mongodb驱动。可以使用以下命令来查看当前项目使用的mongodb驱动版本: ``` npm ls mongodb ``` 如果版本不兼容,我们可以使用以下命令来升级mongodb驱动版本: ``` npm install mongodb@latest ``` 同样的,如果升级后仍然无法解决问题,我们可以尝试更换为其他的mongodb驱动。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^