Ошибка регистрации модуля NEST JS при новом подключении

#javascript #node.js #nestjs #nestjs-config

#javascript #node.js #nestjs #nestjs-config

Вопрос:

Привет, я пытаюсь создать новый модуль с подключенной новой базой данных, но он показывает мне ошибку:

 //module    
@Module({
      imports: [CoffeesModule,
        DatabaseModule.register({ // 👈 passing in dynamic values
          type: 'postgres',
          host: process.env.DATABASE_HOST, // database host
          port:  process.env.DATABASE_PORT, // database host
          username: process.env.DATABASE_USER, // username
          password: process.env.DATABASE_PASSWORD, // user password
          database: process.env.DATABASE_NAME, // name of our database,
        })],
      providers: [CoffeeRatingService]
    })
    export class CoffeeRatingModule { }

@Module({})
export class DatabaseModule {
  static register(options: ConnectionOptions): DynamicModule {
    return {
      module: DatabaseModule,
      providers: [
        {
          provide: 'CONNECTION', // 👈
          useValue: createConnection(options),
        }
      ]
    }
  }
};
  

Но это покажите мне

(узел: 14394) Предупреждение о необработанном отказе: ошибка: сбой аутентификации по паролю для пользователя «globant» в Parser.parseErrorMessage (/home/globant/repos/ilovecoffie/node_modules/pg-protocol/dist/parser.js) в Parser.handlePacket (/home/globant/repos/ilovecoffie/node_modules/pg-protocol/ dist/parser.js:126:29) в Parser.parse (/home/globant/repos/ilovecoffie/node_modules/pg-protocol/dist/parser.js:39:38) в сокете. (/home/globant/repos/ilovecoffie/node_modules/pg-protocol/dist/index.js:8:42) в Socket.emit (events.js:314:20) в addChunk (_stream_readable.js:303:12) в READABLE addchunk (_stream_readable.js:279:9) в Socket.Readable.push (_stream_readable.js:218:10) в TCP.onStreamRead (internal/stream_base_commons.js:188:23)

Но настройки порта и конфигурации для подключения верны, потому что у меня уже есть соединение с типом ORM:

 @Module({
  imports: [
    ConfigModule.forRoot(),
    CoffeesModule,
    TypeOrmModule.forRoot({
      type: 'postgres', // type of our database
      host: process.env.DATABASE_HOST, // database host
      port:  process.env.DATABASE_PORT, // database host
      username: process.env.DATABASE_USER, // username
      password: process.env.DATABASE_PASSWORD, // user password
      database: process.env.DATABASE_NAME, // name of our database,
      autoLoadEntities: true, // models will be loaded automatically (you don't have to explicitly specify the entities: [] array)
      synchronize: true, // your entities will be synced with the database (ORM will map entity definitions to corresponding SQL tabled), every time you run the application (recommended: disable in the production)
    }),
    CoffeeRatingModule,
    DatabaseModule,],
  controllers: [
    AppController],
  providers: [AppService],
})
export class AppModule { }
  

И его работа:

введите описание изображения здесь

Комментарии:

1. Возвращает ли «createConnection(…)» обещание? Если это так, возможно, вам потребуется переключить «useValue: createConnection(параметры)» на «useFactory: async () => ожидать создания подключения (параметры)»

2. Как эти параметры передаются вашему драйверу базы данных? Является ли это оболочкой для TypeORM? Как process.env заполняется? Я вижу, вы используете a ConfigModule , есть ли причина, по которой вы также не используете a ConfigService ?

3. Я предполагаю, что проблема связана с официальным курсом NestJS. У меня там была такая же проблема. Спасибо за решение.