Есть ли способ получить доступ к базе данных из файла модуля в NestJS?

Я разрабатываю функцию отправки электронной почты с помощью nestJS, я использую Nest Mailer; Есть ли способ получить «хост», «порт», «пользователь» и «проход» из полей, хранящихся в таблице базы данных? Кстати, я использую TypeORM. В файле .module я настраиваю плагин следующим образом:

import { Module } from '@nestjs/common';
import { MailsController } from './controllers/mails.controller';
import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter';
import { MailsService } from './services/mails.service';
import { MailerModule } from '@nestjs-modules/mailer';

@Module({
  controllers: [MailsController],
  providers: [MailsService],
  imports: [
    MailerModule.forRoot({
      transport: {
        host: 'smtp.gmail.com',
        port: 587,
        ignoreTLS: true,
        secure: true,
        auth: {
          user: "",
          pass: "",
        },
      },
      defaults: {
        to: '[email protected]',
        from: '"nest-modules" <[email protected]>',
      },
      template: {
        dir: __dirname + '/templates',
        adapter: new HandlebarsAdapter(),
        options: {
          strict: true,
        },
      },
    }),],
  exports: [MailsService],
})
export class MailsModule { }
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
519
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пока у MailerModule есть метод forRootAsync, в котором вы можете определить imports, inject и useFactory, тогда да, вы можете сделать вызов к базе данных, предполагая, что у вас есть сущность, настроенная для этого. Возможно что-то вроде

@Module({
  imports: [
    MailerModule.forRootAsync({
      imports: [TypeOrmModule.forFeature([MailerConfigEntity])],
      inject: [getRepositoryToken(MailerConfigEntity)],
      useFactory: async (mailerRepo: Repository<MailerConfigEntity>) => {
        const config = await mailerRepo.find();
        return { configObjectUsingConfig };
      }),
    }),
  ],
})

Есть ли способ использовать службу разработчика в этом коде?

VenomBerry 31.12.2020 09:51

Абсолютно. Думайте о массиве inject как о своем конструкторе, пока вы передаете ему токены инъекции (обычно классы, но иногда строки), вы можете внедрить их в метод useFactory и использовать эти введенные свойства в их

Jay McDoniel 31.12.2020 17:59

@JayMcDoniel, это не работает, так как я тоже хочу добиться того же, но получить проблемы с useFactory. Не могли бы вы указать мне решение?

Kunal Ghosh 23.11.2021 12:38

@KunalGhosh «это не работает» никому ничего не говорит, кроме того, что у вас есть какая-то проблема. Специфика отличная. Я понятия не имею, как выглядит ваш код или что вы пытаетесь сделать. Было бы неплохо открыть новый пост с подробностями того, что происходит.

Jay McDoniel 23.11.2021 18:20

@JayMcDoniel Не могли бы вы попытаться изучить эту проблему, которую я опубликовал всего за несколько минут? Будет очень полезно, если вы предоставите какое-то рабочее решение.... спасибо! stackoverflow.com/questions/70096364/…

Kunal Ghosh 24.11.2021 13:50

Другие вопросы по теме