http POST响应后,将标头发送到客户端后无法设置标头

时间:2020-05-19 00:55:03

标签: javascript node.js express fs formidable

首先,我为打字错误道歉,我是巴西人

我访问了以下问题,但这并没有帮助我解决问题

ERR_HTTP_HEADERS_SENT: Cannot set headers after they are sent to the client

我有一个从路由localhost:4000/returnvalues调用的方法 在第一个请求上,它按预期工作

但是在下一个中,它返回以下错误

_http_outgoing.js:526
throw new ERR_HTTP_HEADERS_SENT('set'); ^

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

我的代码

module.exports = app => {

const formidable = require('formidable')
const path = require('path')
const folder = path.join("C:/Users/Rafael/Desktop", 'files')
const fs = require('fs')
var form = new formidable.IncomingForm({
    uploadDir: folder,
    keepExtensions: true
})

const returnvalues = async (req, res) => {
    form.parse(req, (_, fields, files) => {
        app.api.readFile.readFiles(files.Teste.path).then(values => {
            res.status(200).send(values)
           })
       })
   }

  return { returnvalues }
}

我尝试使用失败

return res.status(200).send(values)

此方法返回了一个从Excel电子表格读取的对象

error from the server my code

1 个答案:

答案 0 :(得分:1)

我遇到了与您相同的错误。 如果您输入表单变量

var form = new formidable.IncomingForm({
    uploadDir: folder,
    keepExtensions: true
})

在您的returnvalues函数内部,它应该可以工作。