我的来自 Typicode 的 JSON 服务器更新 ReactJS 中的数据库

Posted

技术标签:

【中文标题】我的来自 Typicode 的 JSON 服务器更新 ReactJS 中的数据库【英文标题】:My JSON Server from Typicode updating database in ReactJS 【发布时间】:2021-02-02 06:09:07 【问题描述】:

我最近一直在尝试使用来自 typicode 的 json 服务器来处理假 API。使用假 API 对我来说是很新鲜的事情,所以我的问题听起来可能有点奇怪。

我是否正确理解这个假 API 服务器的概念,我可以在 ReactJS 中使用发布请求更新数据库?还是数据库永远不会通过发布请求更改,而我只在控制台日志中得到结果?

特别是我正在尝试通过发布请求将表单数据从表单发布到我的 json 服务器。

到目前为止谢谢!

我用来发布数据的代码:

axios.post(`my-url`,  user )
                    .then(res => 
                      console.log(res);
                      console.log(res.data);
                    )
                        

【问题讨论】:

【参考方案1】:

我假设您正在使用json-server 包并使用这样的服务器。在这种情况下,您发出的成功 POST 请求将保存在您提供给服务器的文件中,如果您不提供任何特定文件,则保存在默认文件中。

如果你想使用json-server 并使更改持久化,你可以使用它的 npm 包:

npm install -g json-server

然后,在您的项目目录中创建一个db.json 文件并提供您要使用的数据结构:


  "posts": [
     "id": 1, "title": "json-server", "author": "typicode" 
  ]

如果您不提供db.json 文件,它会在您启动服务器时自动创建。所以,这取决于你。

然后,你应该启动服务器:

json-server db.json

服务器会在3000端口,如果有其他应用在这个端口上运行,你可以在启动时指定端口:

json-server db.json -p 3001

现在,您可以向http://localhost:3001/posts 提出请求。只需检查 its documentation 的请求即可。

【讨论】:

是的,没错,我正在使用你提到的 json-server。我的理解是正确的:提交成功后,我的 json 文件中应该可以看到我的 post 请求? 确实如此。这就是安装和使用服务器的重点。 好的,我在这里安装了它:my-json-server.typicode.com/aaronjoeldev/demo 设置有问题吗?因为我的发帖请求并没有改变任何东西 这是他们提供的其他东西。我说的是本地 npm 包。您是否按照他们解释here 的说明进行操作?就像在 Github 上创建一个 repo 并在那里创建一个 db.json 文件?顺便说一句,如果您想更新您的问题,请不要添加答案。只需编辑您的问题并在那里进行更新。 嗯,这就是他们所说的:“为了能够在此阶段为尽可能多的人提供免费服务,该项目有一些限制:更改是伪造的,不是持久化(就像 JSONPlaceholder)”...所以如果你使用这个方法,更改不会持久化。【参考方案2】:

您无法向此服务器https://my-json-server.typicode.com/$github-username/$github-repo/$event 发出发布请求,

截至本回复时,您只能发出 get 请求,建议您在本地机器上使用 JSON-server。

在项目文件夹上创建一个db.json文件,

例如在文件中添加类似这样的内容


  "events": [
    
      "id": 123,
      "category": "animal welfare",
      "date": "January 28, 2022",
      "time": "12:00",
    ,
    
      "id": 456,
      "category": "nature",
      "date": "January 30, 2022",
      "time": "11:00",
    ,

运行 npm install -g json-server 和 json-server --watch db.json 提供发出请求所需的 baseUrl

【讨论】:

以上是关于我的来自 Typicode 的 JSON 服务器更新 ReactJS 中的数据库的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 使用libcurl和json-c发布和解析来自http://jsonplaceholder.typicode.com的返回的示例代码

来自 json 的 Flutter ExpansionTile

AJAX jSON资源 ,jsonplaceholder.typicode

json-server数据模拟

使用中间件为 JSON Server 中的所有请求添加前缀

Vue Router - 使用主视图中的 json 填充详细信息视图