NestJS - Как / Где настроить FileInterceptor с асинхронным способом - PullRequest
1 голос
/ 13 апреля 2019

Как сказано в документации: у нас может быть асинхронная конфигурация для перехватчика файлов.

Я хотел бы использовать это, чтобы использовать мой ConfigService для каталога загрузки (который отличается в зависимости от среды). Но я не знаю, где написать эту асинхронную конфигурацию.

В документации приведен пример настройки конфигурации, но я не знаю, как интегрировать ее в свой проект.

Я проверил официальную документацию и особенно Techniques/File Upload и Overview/Middleware. Я протестировал некоторую реализацию, но моя конфигурация, кажется, никогда не использовалась.

Я использую этот метод для настройки Multer:

MulterModule.registerAsync({
  imports: [ConfigModule],
  useFactory: async (configService: ConfigService) => ({
    storage: diskStorage({
      destination: configService.downloadFolder,
      filename: (req, file, cb) => {
        const randomName = Array(32)
          .fill(null)
          .map(() => Math.round(Math.random() * 16).toString(16))
          .join('')
        return cb(null, `${randomName}${extname(file.originalname)}`)
      }
    })
  }),
  inject: [ConfigService]
})

У вас есть идеи, как интегрировать эту конфигурацию?

Спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 13 апреля 2019

Вы должны импортировать MulterModule в AppModule, чтобы установить конфигурацию по умолчанию:

@Module({
  imports: [
    MulterModule.registerAsync(...)
  ],
})
export class AppModule{}
...