axrising
@axrising

Почему multer middleware не запускает мой route в express?

Уверен что проблема в async await, но не понимаю как от неё избавится, middleware доходит до UploadFileCtrl.uploads и после этого идет циклическая загрузка изображений в браузере (pending), то есть после console.log код не выполняется,
буду очень признателен за ответ

app.post('/photos/upload', (req, res) => {
  upload(req, res, (err: any) => {
    if (err) return res.send({ error: 'invalid_file' })
    console.log('hello from here')

    UploadFileCtrl.uploads
  })
})

class UploadFileController {
  async uploads(req: express.Request, res: express.Response): Promise<void> {
    const files: any = req.files
    if (files) {
      const urls = []
      for (const file of files) {
        const result = await uploadFromBuffer(file.buffer, 'Tweets')
        urls.push(result)
      }
      res.status(200).json({
        message: 'images uploaded successfully',
        data: urls,
      })
    } else {
      res.status(204).json({
        err: 'Empty',
      })
    }
  }
}

export const uploadFromBuffer = (buffer: Buffer, folder: string) => {
  return new Promise((resolve, reject) => {
    const stream = cloudinary.uploader.upload_stream(
      {
        folder,
      },
      (error: any, result: any) => {
        console.log(error, result)
        if (result) {
          resolve({
            url: result.url,
            size: Math.round(result.bytes / 1024),
            height: result.height,
            width: result.width,
          })
        } else {
          reject(error)
        }
      }
    )

    streamifier.createReadStream(buffer).pipe(stream)
  })
}
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
UploadFileCtrl.uploads
Чего вы ожидаете от этой строки?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы