【发布时间】:2023-02-05 20:02:50
【问题描述】:
我需要在上传文件时获取请求进度。
如果我做
app.post('/upload', upload.single('file'), (req,res,next) => {
req.on('data', ()=> {
//DO SOMETHING
)
//PROCESS MY FILE
})
在本地和 AWS EC2 上:
“DO SOMETHING”方法仅在 multer 中间件完成接收所有文件后执行,因此它不起作用
所以我正在做的是:
app.post('/upload', (req,res,next) => {
req.on('data', ()=> {
//DO SOMETHING
)
next()
}, upload.single('file'), (req, res, next) => {
//PROCESS MY FILE
})
本地:
这有效,每当上传一大块文件时都会调用“做点什么”
在 AWS EC2 上
这是行不通的。在 multer 中间件完成接收文件后,同时调用所有“DO SOMETHING”。
为什么会这样?
我如何让它正确触发事件?
PS:文件上传完成后,我尝试将 next() 调用置于数据事件中,但随后 multer 抛出异常
Error: Unexpected end of form at Multipart._final
【问题讨论】:
标签: node.js amazon-web-services express amazon-ec2 multer