上传大文件nodejs multer时出现ERR_CONNECTION_RESET

问题描述 投票:0回答:2

我正在编写一个网络应用程序,允许用户上传非常大的文件(最多 GB)。我的技术栈包括:nodejs、express、multer和纯html。它适用于小文件。但是当我上传大文件(127 MB)时,等待一段时间(大约2分钟)后出现错误ERR_CONNECTION_RESET

我尝试使用 req.setTimeout 和 res.setTimeout 在服务器上延长响应时间,但没有帮助。这可能是因为前端等待很长时间才能得到响应。

以下是我得到的错误:

谢谢大家。

node.js file-upload multer connection-reset
2个回答
0
投票

增加相应上传路由的

res
超时肯定会起作用。尝试这样做:

function extendTimeout (req, res, next) {
  // adjust the value for the timeout, here it's set to 3 minutes
  res.setTimeout(180000, () => { // you can handle the timeout error here })
  next();
})

app.post('/your-upload-route', extendTimeout, upload.single('your-file'), (req, res, next) => {
  // handle file upload
})

0
投票

经过几个小时的尝试调试,我终于得到了一个可行的解决方案:

关键是提高

server.requestTimeout
server.headersTimeout

的值

server.headersTimeout 上的文档

server.requestTimeout 或 60000 之间的最小值。

© www.soinside.com 2019 - 2024. All rights reserved.