我有一个graphql的变种,它从前端获取图像,然后在我的服务器上进行处理和优化。
但我不知道怎么把我的图像传给夏普。
下面是我的代码:
const Mutation = {
createImage: async (_, { data }) => {
const { file } = data
const image = await file
console.log(image)
const sharpImage = sharp(image)
}
}
字符串
我知道代码不工作,sharp
抛出一个错误,说输入无效。那么我如何使用createReadStream
并创建sharp
的示例呢?
当我console.log(image)
,这是我看到的:
image {
filename: 'image.png',
mimetype: 'image/png',
encoding: '7bit',
createReadStream: [Function: createReadStream]
}
型
非常感谢提前!
2条答案
按热度按时间bakd9h0s1#
所以我找到了我问题的答案。
首先,我发现我需要将
scalar Upload
添加到typeDefs
。然后,我需要为
Upload
添加一个解析器,如下所示:字符串
然后在我的解析器中,这是我必须做的:
型
b4wnujal2#
Apollo建议使用签名URL,而不是通过mutations上传文件。https://www.apollographql.com/blog/backend/file-uploads/file-upload-best-practices/
这是由于CSRF风险和性能影响,特别是当应用扩展时。对于正确处理CSRF风险的应用,通过突变上传文件应该是可以的。