MongooseModule:无法连接到数据库。在带有 Mongo 的 dockerized Nestjs 应用程序上

Posted

技术标签:

【中文标题】MongooseModule:无法连接到数据库。在带有 Mongo 的 dockerized Nestjs 应用程序上【英文标题】:MongooseModule: Unable to connect to the database. On a dockerized Nestjs app with Mongo 【发布时间】:2021-08-23 14:04:13 【问题描述】:

我正在尝试使用 docker-compose 启动 react-nestjs-mongo db 应用程序,但由于某种原因它似乎不起作用。 docker-compose --build 输出显示如下:

服务器 | [Nest] 32 - 06/06/2021,凌晨 3:10:25 [MongooseModule] 无法连接到数据库。正在重试 (7)... +33006ms

数据库 | "t":"$date":"2021-06-06T03:10:27.406+00:00","s":"I", "c":"STORAGE", "id":22430, "ctx":"WTCheckpointThread","msg":"WiredTiger 消息","attr":"消息":"[1622949027:406819][1:0x7f9ae2c3b700], WT_SESSION.checkpoint:[WT_VERB_CHECKPOINT_PROGRESS] 保存检查点 快照最小值:7,快照最大值:7 快照计数:0,最早的时间戳: (0, 0) ,元检查点时间戳:(0, 0)"

这是我的 docker-compose:

version: "3.5"

services:   client:
    container_name: client
    build: ./client
    ports:
      - 3000:3000
    depends_on:
      - server

  server:
    container_name: server
    build: ./server
    ports:
      - 8000:8000
    depends_on:
      - mongodb
    links:
      - mongodb

  mongodb:
    container_name: database
    image: mongo
    restart: always
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

我的 app.modules.ts 文件如下所示:

import  Module  from '@nestjs/common';
import  AppController  from './app.controller';
import  AppService  from './app.service';
import  MongooseModule  from '@nestjs/mongoose';

@Module(   
imports: [
    MongooseModule.forRoot('mongodb://localhost:27017/nestjs', 
      useNewUrlParser: true,
    ),   
],   
controllers: [AppController],   
providers: [AppService],
 )  
class AppModule 

谁能解释一下为什么这不起作用?

【问题讨论】:

【参考方案1】:

您正在使用 docker-compose 。因此,您没有连接“localhost”,但它应该是您在 docker-compose 文件中定义的“服务”的地址。

而不是 'mongodb://localhost:27017/nestjs' ,您应该使用(在您的情况下,您在 docker-compose 中定义的服务名称是 mongodb 。您应该使用 'mongodb://mongodb:27017/nestjs'

【讨论】:

以上是关于MongooseModule:无法连接到数据库。在带有 Mongo 的 dockerized Nestjs 应用程序上的主要内容,如果未能解决你的问题,请参考以下文章

Tableau怎么连接到数据?

MySQL Workbench 无法连接到我的 RDS 数据库:无法连接到 localhost

连接网站显示数据库错误:无法连接到数据库:无法连接到MySQL?

Web API 在使用几天后总是无法连接到 MYSQL 数据库

无法使用 Python 连接到 MSSQL Server 数据库

无法连接到我的 AWS 数据库实例 | psql:无法连接到服务器:操作超时