【问题标题】:NodeJS - Apollo Server: Request disconnected during file upload stream parsingNodeJS - Apollo Server:文件上传流解析期间请求断开连接
【发布时间】:2020-05-26 09:49:21
【问题描述】:

我正在将一个文件从client 发送到apollo-server,然后它将发出另一个使用该文件服务的请求。

下面是代码示例:

import request from "request"

uploadFile: async (_, { file } => {
  const { filename, createReadStream } = await file
  const stream = createReadStream()

  const options = {
    method: "POST",
    url: "http://localhost:5000/api/upload",
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    formData: {
      file: {
        value: stream,
        options: {
          filename,
          contentType: null,
        },
      },
    },
  }

  request(options, err => console.log(err))
})

这会导致以下错误:

BadRequestError: form-data: Request disconnected during file upload stream parsing.
    at IncomingMessage.abort (/Users/hansel/Documents/LIT/Development/creators-app/server/node_modules/graphql-upload/lib/processRequest.js:89:33)
    at Object.onceWrapper (events.js:417:28)
    at IncomingMessage.emit (events.js:311:20)
    at IncomingMessage.EventEmitter.emit (domain.js:482:12)
    at resOnFinish (_http_server.js:685:7)
    at ServerResponse.emit (events.js:323:22)
    at ServerResponse.EventEmitter.emit (domain.js:482:12)
    at onFinish (_http_outgoing.js:730:10)
    at onCorkedFinish (_stream_writable.js:721:5)
    at afterWrite (_stream_writable.js:528:5)
    at afterWriteTick (_stream_writable.js:515:10)
    at processTicksAndRejections (internal/process/task_queues.js:83:21) {
  message: 'form-data: Request disconnected during file upload stream parsing.',
  expose: true,
  statusCode: 499,
  status: 499
}

file 是一个有效的可读流。该错误仅在我尝试在请求中发送时发生。

如果我将stream 替换为fs.createReadStream("filePath"),则请求可以正常工作。

有人遇到过这个问题吗?

【问题讨论】:

    标签: node.js stream graphql


    【解决方案1】:

    尝试在解析器中等待您的异步上传文件,例如:

    Mutation:{
    uploadFile:async (_, { file }, { uploadFile}) => {
      await uploadFile(file)
    }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-06
      • 2018-03-08
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多