【问题标题】:Is it possible to write data in JSON file without AJAX or backend?是否可以在没有 AJAX 或后端的情况下将数据写入 JSON 文件?
【发布时间】:2021-03-10 13:12:44
【问题描述】:

我正在开发一个小型测试应用程序,但我对前端的 JSON 存有疑问。

我正在使用 React,我正在使用 JSON 文件作为小型测试数据库,仅保存 1 个用户。事实上,我想在那里编写更多用户并编辑 JSON 寄存器。

没有后端或 AJAX 是否可行?

**编辑:**

我将 localStorage 用于实际登录的用户并且它会移动,最后需要在我关闭会话和 localStorage 丢失之前保存它的数据。

【问题讨论】:

  • 没有 Ajax,是的,没有后端
  • 您可以使用许多云数据存储服务
  • 当您关闭浏览器或标签页时,localStorage 中的数据不应该丢失。一定要使用 localStorage 而不是 sessionStorage
  • 哦,是的,我在编辑中遗漏了一些东西,当我关闭会话时,我清理了 localStorage 数据,将其用作登录“标志”
  • @charlietfl 事实上我只需要前端而不需要外部服务

标签: javascript json ajax


【解决方案1】:

AJAX 用于前端(例如:ReactJS、VueJS)和后端(例如:NodeJS/Express、Python/Flask)之间的 HTTP 请求。

如果您使用的是 JSON 变量,则每次网站刷新时数据都会被删除。如果您使用的是 JSON 文件,出于安全原因,您无法从浏览器访问文件系统。

我推荐使用 localStorage,它仅作为前端每个浏览器(每个用户)的本地数据库。 最常见的用法是:

二传手:

localStorage.setItem('name', 'John')

吸气剂:

const name = localStorage.getItem('name');
console.log(name) // John

在 React 中,你可以在我做的这个例子中设置和更新数据:

演示 https://stackblitz.com/edit/react-fctts3

【讨论】:

  • 感谢@josemartindev 的回答,事实上我应该使用Redux 来做这些事情,但老实说我不知道​​如何使用它(需要研究它)。事实上,我只是在这个测试中开发前端,我需要一些东西来保存数据、创建新用户并修改他们的值。
  • 在学习 Redux 之前,先尝试使用 React 的 state + localStorage。修改状态时,也要保存在 localStorage 中。确保在进入组件之前设置 state 并设置 localStorage(使用 useEffect 或 componentDidMount)
  • 事实是我在问题中更新的内容,我正在使用 localStorage,但我需要创建更多用户并修改他们的数据(一些简单的纯数据)我也在使用状态但我根本没明白。
  • @B2DAW 当您说“在我关闭会话之前保存数据”,要保存此数据,您实际上需要一个后端以便将数据保存在 JSON 文件中或在数据库中,因为使用 React 您无法访问文件系统。
  • @josemartindev 你说得对,我会将它全部保存在 localStorage 中,这是最简单的解决方案,谢谢!
【解决方案2】:

简短的回答,不。您不能将数据直接写入客户端的磁盘。 但有解决方法。 一种方法是使用常见的浏览器存储选项。如本地存储

localStorage.setItem(keyname, value)

read more here

另一种方法如果您需要移动数据是让用户下载您的文件并保存。当您再次需要它时,他们可以将其重新上传到您的前端页面。你可以阅读这个here

当然还有其他选项,例如 cookiesIndexedDB/WebSQL。但我认为本地存储可以满足您的需求。

编辑: 如果您对 Internet 连接没有任何问题,还有一个很棒的选择是使用 google 表格作为数据库!使用这个工具: https://sheety.co/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 2018-08-06
    • 2010-10-25
    • 2016-09-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多