Уверен что проблема в 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)
})
}