【发布时间】:2020-05-20 10:21:42
【问题描述】:
我尝试使用 graphql-upload 的 GraphQLUpload 标量向 GraphQL 端点添加上传参数:
import { FileUpload, GraphQLUpload } from 'graphql-upload'
@Mutation(() => Image, { nullable: true })
async addImage(@Args({name: 'image', type: () => GraphQLUpload}) image: FileUpload): Promise<Image | undefined> {
// do stuff...
}
这最初是有效的。然而,运行几次后,它开始返回以下错误:
"Variable \"$image\" got invalid value {}; Expected type Upload. Upload value invalid."
尝试使用 Insomnia 客户端和 curl 进行测试:
curl localhost:8000/graphql \
-F operations='{ "query": "mutation ($image: Upload!) { addImage(image: $image) { id } }", "variables": { "image": null } }'
-F map='{ "0": ["variables.image"] }'
-F 0=@/path/to/image
【问题讨论】:
-
@xadm 感谢您的回复。这里的规范:github.com/jaydenseric/graphql-multipart-request-spec 提到这些应该为空,不是这样吗?
-
它工作... node.js 错误/警告?重启?
-
@xadm
GraphQLError: Upload value invalid. at GraphQLScalarType.parseValue (/path/to/project/nest/node_modules/graphql-upload/lib/GraphQLUpload.js:66:11)。它最初对我有用(大约一个小时),然后出现错误,我不确定发生了什么变化。
标签: graphql nestjs apollo-server