JSON 服务器 - 将数据发布到数组中的特定对象中

Posted

技术标签:

【中文标题】JSON 服务器 - 将数据发布到数组中的特定对象中【英文标题】:JSON server - post data into specific object in array 【发布时间】:2020-04-22 03:08:42 【问题描述】:

我正在练习 fetch api 并且在发布数据时遇到问题...在第一步中我发布到“http://localhost:3003/users”并且它工作正常 -> 代码:

(async () => 
        const res = await fetch('http://localhost:3003/users', 
          method: 'POST',
          body: JSON.stringify( name, password ),
          headers: 
            'Content-Type': 'application/json'
          
        );

但是在另一个组件中(第二步)我有这个代码:

  useEffect(() => 
    (async () => 
      try 
        const resp = await fetch(`http://localhost:3003/users/$userID`, 
          method: 'POST',
          body: JSON.stringify( tasks: [1, 2, 3] ),
          headers: 
            'Content-Type': 'application/json'
          
        ).then(res => console.log(res));
       catch (err) 
        console.error(err);
      
    )();
  , [userID]);

登录到控制台后,得到了这个:

Response type: "cors", url: "http://localhost:3003/users/0", redirected: false, status: 404, ok: false, …
body: (...)
bodyUsed: false
headers: Headers 
ok: false
redirected: false
status: 404
statusText: "Not Found"
type: "cors"
url: "http://localhost:3003/users/0"

但是当我转到http://localhost:3003/users/0 时,我可以看到用户,所以似乎 url 有效...当然,当我删除 $userID 时它有效,但是数组被添加为最后一个对象,而不是这个特定用户...更重要的是 - http://localhost:3003/users/$userID 与 GET 方法一起使用。

问题是 - 如何将数据发布到 JSON 服务器中的数组中的单个对象??

db.json:


  "users": [
    
      "id": 0,
      "name": "Ola",
      "password": "12345"
    ,
    
      "name": "newuser",
      "password": "newuser",
      "id": 1
    
  ]

表单提交检查是否有同名的用户;如果没有,请发布新用户

【问题讨论】:

你使用什么样的网络服务器? 我正在使用 json-server 你能发布你的 db.json 文件吗 是的 - 我在上面添加了 【参考方案1】:

已解决

我使用了错误的方法 - POST 而不是 PATCH

【讨论】:

【参考方案2】:

因此,当您发布某些内容时,在您的情况下,您将其发布到用户数组

所以应该这样试试

fetch(`http://localhost:3003/users`)

在你的身体里你需要传递 id

 id:`$userId` tasks: [1, 2, 3] 

更新这些东西并检查。

更新

因为它正在向用户对象添加新属性,所以需要使用 Patch 而不是 Post

您可以在here阅读更多内容

【讨论】:

它不起作用 - 现在我有 500 和内部服务器错误 我明白了 - 我在获取请求中使用了错误的方法(POST 而不是 PATCH)。无论如何谢谢;) 我已对其进行了更新,请检查并投票,以便对其他人有所帮助

以上是关于JSON 服务器 - 将数据发布到数组中的特定对象中的主要内容,如果未能解决你的问题,请参考以下文章

将数组中的 Json 对象发送到服务器

将特定 JSON 字段反序列化为 Unity 中的对象列表

将 JSON 数组发布到 Android 中的 Web 服务

如何将夹具中的不同 JSON 对象映射到 cypress 中的特定规范测试文件

如何使用返回的 json 对象中的特定项目设置反应组件的状态?

Json.NET:将嵌套数组反序列化为强类型对象