我正在从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")
,则请求正常。
有人遇到这个问题吗?
例如,尝试在解析器中等待您的异步上载文件:
Mutation:{
uploadFile:async (_, { file }, { uploadFile}) => {
await uploadFile(file)
}}