NodeJS:Stream.pipe(Stream)有效,但Stream.read()不会

时间:2017-07-19 08:07:23

标签: node.js http multipartform-data

我是NodeJS的新手,我基本上要做的是通过HTTP将.pdf上传到我的服务器。我使用带有Content-Type multipart / form-data的POST rquest。在NodeJS中,我使用multiparty来解析我的请求。

有趣的是,当我想访问我的请求的表单数据部分时,在我的情况下,它是一个JSON对象,当我管道()从multiparty到stdout的Stream时,它工作但是当我读取()流时,我只得到空。

这是我代码中的(可能)重要部分:

form.on('part', (part) => {    // part is the Stream returned by multiparty
  if(!part.filename) {         // only fields, not files
    console.log(part.read());  // output is null
    part.pipe(process.stdout); // output is my JSON object 
    part.resume();
  }
}

我没有收到任何错误。

我很抱歉,我犯了一个真正的转储错误......

提前致谢,

路易斯!

1 个答案:

答案 0 :(得分:1)

Perheps part处于流量模式。你可以试试这样的东西

form.on('part', (part) => {    // part is the Stream returned by multiparty
  if(!part.filename) {         // only fields, not files
    part.on('data', chunk => {
      console.log(chunk.toString())
    })
    .on('error', console.error) // if stream emits errors you should handle them
  }
}