use*_*851 6 apollo reactjs graphql
我对 GraphQL 有点陌生,这个问题属于“它不可能这么难。我必须遗漏一些东西。”
我有一个相当标准的 GraphQL/Apollo/React 应用程序,分为客户端和服务器。客户端调用 API 并从服务器获取数据时,一切都运行良好。客户端甚至可以将文件上传到服务器。但是,我现在需要服务器流回保存在磁盘上的文件。就是这样。
这是“我必须遗漏一些东西”的部分。我在文档和 Stackoverflow 上看到的所有内容都是从服务器推回文件并通过 GraphQL 查询作为 Base64 编码的字符串,然后在客户端上执行一些非常 hacky 的操作,通常涉及隐藏的 href 标签和模拟点击。对此我说:“什么???”
严重地。磁盘上有服务器知道如何查找的文件。客户端需要向用户显示一个按钮,用户可以单击该按钮来下载文件。就是这样。所有其他语言的其他框架都有一个简单的方法来做到这一点。有人可以告诉我我在这里缺少的极其简单的事情吗?
谢谢,亚历克斯
您缺少的是 GraphQL 确实不应该用于此目的。
虽然 GraphQL 本身没有指定序列化响应的特定格式,但事实上的格式是 JSON。在 JSON 响应中获取文件的唯一方法是将其序列化为字符串。
如果您想提供静态内容,您应该设置 Nginx、Apache 或其他基于此构建的 Web 服务器。或者,如果您已经在使用一些现有的 Web 服务器库(例如 Express),它很可能也具有用于提供静态内容的工具。
仅仅因为您有 GraphQL 端点并不一定意味着它应该是您的客户端与后端通信的唯一方式。
| 归档时间: |
|
| 查看次数: |
4395 次 |
| 最近记录: |