如何发送文件以响应 graphql 查询? (从服务器向客户端发送一个 csv 文件)
Posted
技术标签:
【中文标题】如何发送文件以响应 graphql 查询? (从服务器向客户端发送一个 csv 文件)【英文标题】:How to send a file to response a graphql query? (send a csv file from server to client) 【发布时间】:2018-08-06 09:35:44 【问题描述】:我想发送一个 csv 文件来处理 graphql 查询。 我正在使用 Apollo 服务器和 Apollo 客户端和 Reactjs。 (从服务器向客户端发送一个 csv 文件)
谁能告诉我如何实现它?
【问题讨论】:
澄清一下,您是在尝试发送 CSV 文件作为响应来自服务器的一部分,还是尝试发送 CSV 文件到 服务器? 第一个。将 csv 文件从服务器发送到客户端 有关于这个问题的消息吗? 【参考方案1】:仅当您喜欢在前端下载文件时才使用 Graphql 响应 JSON 格式 你可以实现另一个应用,比如 express 来上传和下载文件。
【讨论】:
这是误导。 JSON 只是传输格式。请不要告诉别人这些。如果它是 base64 编码或 stringify() ,您可以发送和接收 CSV。只需解析另一端的数据。【参考方案2】:您没有为此创建 EXPRESS (REST API) 服务器。您可以通过多种方式实现这一目标。
如果您对文件进行 base64 编码,则可以发送和接收文件。在客户端接收文件,您需要从 JSON 响应中对其进行解码。然后创建一个对象以附加该对象以便下载它。
您可以生成 csv 服务器端并将 URI 传回文件。这通常是 S3 或其他对象存储的一个很好的用例。
您可以将 JSON 格式的数据转换为 CSV 客户端。这是一篇关于这个概念的文章。 https://medium.com/@danny.pule/export-json-to-csv-file-using-javascript-a0b7bc5b00d2
如果您有大型数据集,我建议您使用选项 2。如果您无法访问对象存储,那么最好下载 3。
【讨论】:
以上是关于如何发送文件以响应 graphql 查询? (从服务器向客户端发送一个 csv 文件)的主要内容,如果未能解决你的问题,请参考以下文章
如何模拟 graphQL/Apollo 查询响应以在 redux 中测试 action-creator?
如何解析和编组 GraphQL 对 Java POJO 的响应?