【问题标题】:ERR_CONNECTION_RESET when upload large file nodejs multer上传大文件nodejs multer时的ERR_CONNECTION_RESET
【发布时间】:2020-08-20 07:18:47
【问题描述】:

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

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

以下是我得到的错误:

谢谢大家。

【问题讨论】:

    标签: node.js file-upload multer connection-reset


    【解决方案1】:

    为相应的上传路由增加res-timeout 肯定会起作用。尝试这样做:

    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
    })
    

    【讨论】:

    • 我已经尝试过 res.setTimeout 和 req.setTimeout,但没有成功。我认为前端希望在短时间内听到一些响应,而不是等待文件上传。
    • 你试过这样吗?如果是,您可能需要在客户端调整请求超时。
    • 我尝试在前端使用 axios,但还是不行。
    • 你能添加你的代码并展示你是如何在节点和客户端设置超时的吗?
    猜你喜欢
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 2011-12-29
    • 2021-09-02
    • 2021-03-08
    • 2021-08-16
    • 2017-09-20
    • 2017-03-29
    相关资源
    最近更新 更多