【问题标题】:How to read and write to and from json file from graphql nestjs server in typescript如何在打字稿中从graphql nestjs服务器读取和写入json文件
【发布时间】:2020-02-20 05:23:10
【问题描述】:

我目前正在使用 React、Redux、ApolloClient (typescipt) 作为前端,我在后端使用 nestjs 和 graphql。从前端发送的数据存储在 graphql 的内存中,当服务器刷新时,数据会丢失。我不想拥有数据库,而是想使用 JSON 文件来存储数据并在服务器启动以填充前端时从 json 加载数据。

我有点困惑 JSON 文件的连接将来自服务器端。 以及 graphql 将如何连接到 JSON。

如果有人可以指导我,那将非常有帮助。

谢谢

【问题讨论】:

    标签: json typescript react-redux graphql nestjs


    【解决方案1】:

    不太清楚为什么要在数据库上使用文件,但与 JSON 文件的连接将来自服务器端(显然)可能通过 fs 包,在该包中您具有 readFile 和 @ 之类的功能987654323@ 以及它们的同步变体。您将需要某种服务层,位于 GraphQL 解析器和文件读/写服务之间,以促进业务逻辑。

    您可能会发现创建多个文件读取器/写入器并将每个不同实体的文件作为单独的文件进行管理是有利的(同样,可能与您拥有的实体数量无关)。

    GraphQL 并没有真正连接到 JSON 文件,就像 RESTful 调用没有连接到 JSON 文件一样,它们是通过互联网传输/请求数据的协议和方法。由您的服务器充当请求和文件之间的中介,检索/存储预期数据并告诉响应如何对请求作出反应。

    总体而言,使用数据库将是一种更强大、更牢固的解决方案,但如果您绝对愿意,也可以使其与文件一起使用(尽可能多的反模式)。

    【讨论】:

    • 非常感谢您的快速回答,我想知道在 Graphql 解析器和 json 之间可以使用哪种服务层?你说的是盖茨比吗?或者还有什么我可以使用的。
    • 通过服务层,我说的是您为服务器编写的服务类,它将处理读取和写入,以便您的业务逻辑不会与您的 R/W 逻辑混淆.正如我在答案中所说,您内置了 fs 软件包,可以从托管服务器的机器上读取文件。如果您希望将文件保存在其他位置,例如 S3 存储桶,那么您需要一种方法来从 S3 中提取文件、读/写,然后将它们发送回 S3。否则,您只需要编写一个类来处理 R/W 逻辑。
    • 感谢杰伊的帮助。我会尽快发布更新。
    • 嗨,Jay,这真的很简单,正如你所说的,只是使用 fs 包,但在我的情况下,readFile 不起作用,而 readFileSync 起作用,writefile 也起作用。 :)
    猜你喜欢
    • 2016-02-12
    • 2021-01-30
    • 2018-01-28
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    相关资源
    最近更新 更多