如何使用GraphQL将二进制数据发送回客户端

我有一个特快专递的GraphQL服务器。 我想通过发回nodejs缓冲区对象将图像返回给客户端。 我如何configurationgraphql服务器,返回字节,而不是json? 我不希望通过base64来做这个,因为图片的尺寸很大。

你必须返回JSON,但还是有办法的。 我们使用GraphQL来返回存储在传统SQL数据库中的Blob字段中的图像。 我们使用sequelize,graphql-sequelize和graphql-js。 我们已经将Blob字段定义为我们的graphql模式中的stringtypes,所以他们通过json的回复就可以了。 然后我们在交付之前转换成缓冲区,就像

const imgBuffer = new Buffer.from(imgObj.data, 'ascii');

唯一的问题是我们现在无法通过graphql接口将图像数据保存回数据库。 我们的变异函数在string中find某些不好的Unicode字符时会给我们一个语法错误,就像\ U0000和whatnot(所以我发现你的问题寻找一个解决scheme)。