【发布时间】:2020-04-05 19:07:57
【问题描述】:
我正在尝试使用 multer 调整大小并上传多个文件。它正在工作,但问题是当我将数据发回时,它甚至在处理数据之前就已发送。所以我得到一个空列表。我是 nodejs 的新手,在线尝试过解决方案,但找不到适合我的解决方案。谁能帮我解决这个问题?如何在发送响应之前将数据推送到列表中?
代码附在下面...
router.post('/ads/images', upload.array('images',5), async(req,res)=>{
console.log(req.files);
var data = []
await req.files.every(async(file)=>{
var imageBuffer = await sharp(file.buffer).png().resize({
width:250,
fit: sharp.fit.cover,
position: sharp.strategy.entropy
}).toBuffer()
var thumbnailBuffer = await sharp(file.buffer).png().resize({
width:150,
height:150,
fit: sharp.fit.cover,
position: sharp.strategy.entropy
}).toBuffer()
console.log({imageBuffer,thumbnailBuffer});
data.push({imageBuffer,thumbnailBuffer})
})
console.log(data);
res.send(data)
},(error,req,res,next)=>{
res.status(400).send({error:error.message})
})
【问题讨论】:
标签: node.js express asynchronous async-await multer