我可以使用JavaScript提取将表单数据存储在内存中吗?

时间:2019-04-01 16:12:11

标签: javascript fetch

我正在设置一个演示注册表格,用户可以在其中创建一个帐户。提供的注册凭证应该存储在内存中或存储在用户文件(user.json)中,并且可以用于登录并重定向到用户配置文件页面。

我已经创建了一个user.json文件,并将示例用户详细信息放入其中。我可以使用fetch从user.json文件中console.log()用户详细信息,但是如何使用fetch将更多用户添加到该文件中?

我尝试过的代码:

let bodyData = {
  id: 2,
  name: "sarah",
  email: "sarah@gmail.com"
};

let postData = {
  method: "POST",
  body: JSON.stringify(bodyData)
};

// POST data to json file
fetch("./jsonfile/user.json", postData)
  .then(data => console.log(data))
  .catch(error => console.log(error));

// GET data form json file
fetch("./jsonfile/user.json")
  .then(res => res.json())
  .then(data => {
    data = JSON.stringify(data);
    console.log(data);
  })
  .catch(error => {
    console.log(error);
  });

我应该能够在console.log的输出中看到添加的新用户;

2 个答案:

答案 0 :(得分:0)

您可以采取的一种方法是从代码中抽象出“存储实现”。您可以通过构建代码使用的API来做到这一点。然后以一种可以轻松换出实现的方式构建API。这样,您可以轻松使用HTTP API,an in-memory DB甚至localStorage,而不会破坏代码。

或者,您可以使用Service Workers来拦截网络请求并对其进行处理,例如,将数据加载到localStorage中并将其存储到localStorage中。

答案 1 :(得分:0)

JavaScript有一些用于将数据存储在计算机内存中的API(例如localStorage),但是在存储凭据时,这是非常糟糕的做法,因为只有用户才能访问凭据。我建议您使用服务器建立一个小型数据库,例如Koa服务器和MongoDB数据库。