【问题标题】:How to send a file to response a graphql query? (send a csv file from server to client)如何发送文件以响应 graphql 查询? (从服务器向客户端发送一个 csv 文件)
【发布时间】:2018-08-06 09:35:44
【问题描述】:

我想发送一个 csv 文件来处理 graphql 查询。 我正在使用 Apollo 服务器和 Apollo 客户端和 Reactjs。 (从服务器向客户端发送一个 csv 文件)

谁能告诉我如何实现它?

【问题讨论】:

  • 澄清一下,您是在尝试发送 CSV 文件作为响应来自服务器的一部分,还是尝试发送 CSV 文件到 服务器?
  • 第一个。将 csv 文件从服务器发送到客户端
  • 有关于这个问题的消息吗?

标签: graphql react-apollo


【解决方案1】:

仅当您喜欢在前端下载文件时才使用 Graphql 响应 JSON 格式 你可以实现另一个应用,比如 express 来上传和下载文件。

【讨论】:

  • 这是误导。 JSON 只是传输格式。请不要告诉别人这些。如果它是 base64 编码或 stringify() ,您可以发送和接收 CSV。只需解析另一端的数据。
【解决方案2】:

您没有为此创建 EXPRESS (REST API) 服务器。您可以通过多种方式实现这一目标。

  1. 如果您对文件进行 base64 编码,则可以发送和接收文件。在客户端接收文件,您需要从 JSON 响应中对其进行解码。然后创建一个对象以附加该对象以便下载它。

  2. 您可以生成 csv 服务器端并将 URI 传回文件。这通常是 S3 或其他对象存储的一个很好的用例。

  3. 您可以将 JSON 格式的数据转换为 CSV 客户端。这是一篇关于这个概念的文章。 https://medium.com/@danny.pule/export-json-to-csv-file-using-javascript-a0b7bc5b00d2

如果您有大型数据集,我建议您使用选项 2。如果您无法访问对象存储,那么最好下载 3。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多