从GraphQL返回文件解析

时间:2019-03-04 12:16:16

标签: node.js file express download graphql

我目前正在使用具有当前技术堆栈的应用程序:

后端:

  • 猫鼬

  • Express

  • 阿波罗

  • GraphQL

前端:

  • Vuejs

  • 阿波罗

  • GraphQL

我已成功使用GraphQL将文件上传到服务器,但我坚持的是如何实现“下载”功能。使用正常的RESTApi端点,我可以使用res.download(filePath),并且可以正常工作。既然我不想使用REST,该如何使用GraphQL做到这一点。

或者在这种情况下还有其他标准可以采用吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

GraphQL使用JSON格式,该格式表示为文本格式,而不是二进制格式。

如果您不想使用REST下载文件,则应该:

  1. 将文件内容编码为BE上的base64 stringRelated question
  2. 发送该字符串作为查询响应的一部分。
  3. 将已编码的base64字符串另存为FE上的文件。 Related question

但是正确的架构设计是在GraphQL响应中添加文件链接,并使用浏览器下载/呈现文件。