You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Postman的PATCH方法更新JSON文件中的数据?

如何用Postman的PATCH方法更新JSON文件数据

先给你把后端代码的问题修正,再讲Postman的具体操作:

第一步:修复Express后端代码

现有代码没法处理PATCH更新,得做这几个调整:

  1. 添加JSON请求体解析
    Postman发PATCH请求会用JSON传数据,所以在app.use(express.urlencoded...)后面加一行,让Express能解析JSON格式的请求体:
app.use(express.json());
  1. 修正路由参数格式
    你写的/api/users:id是错误的,参数前面必须加斜杠,改成/api/users/:id,不然无法正确获取用户ID。

  2. 实现PATCH的更新逻辑
    把原来返回Pending的代码替换成实际更新逻辑:找到对应ID的用户,更新传入的字段,再把修改后的数组写回JSON文件。

修改后的完整路由代码:

app.route("/api/users/:id")
.get((req, res) => {
    const id = Number(req.params.id);
    const user = users.find((user) => user.id === id);
    if (!user) {
        return res.status(404).json({ status: "Error", message: "用户不存在" });
    }
    return res.json(user);
  })
.patch((req, res) => {
    const id = Number(req.params.id);
    const userIndex = users.findIndex((user) => user.id === id);
    if (userIndex === -1) {
        return res.status(404).json({ status: "Error", message: "用户不存在" });
    }
    // 只更新传入的字段,保留其他原有数据
    users[userIndex] = { ...users[userIndex], ...req.body };
    // 写入JSON文件,null和2用于格式化输出,方便查看
    fs.writeFile("./MOCK_DATA.json", JSON.stringify(users, null, 2), (err) => {
        if (err) {
            console.error(err);
            return res.status(500).json({ status: "Error", message: "更新失败" });
        }
        return res.json({ status: "Success", data: users[userIndex] });
    });
  })
.delete((req, res) => {
 return res.json({ status: "Pending" });
  });

第二步:用Postman发送PATCH请求

  1. 打开Postman,新建请求,请求方法选择PATCH。
  2. URL栏填写:http://localhost:8000/api/users/[目标用户ID],比如要更新ID为3的用户,就填http://localhost:8000/api/users/3。
  3. 切换到Body标签页,选择raw,然后在下拉菜单里选JSON。
  4. 在输入框里填写要更新的字段,比如:
{
    "first_name": "张三",
    "email": "zhangsan@example.com"
}
  1. 点击Send按钮,请求成功后会返回更新后的用户数据,同时你的MOCK_DATA.json文件里的对应条目也会被更新。

内容的提问来源于stack exchange,提问作者Mudassir Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:16:32