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

如何用一行代码在Express的app.patch中更新数组对象多属性?

简化Express PATCH接口的对象属性赋值代码

你可以使用Object.assign()方法,将请求体中的属性批量合并到找到的对象上,替代原来的逐行赋值操作:

修改后的代码示例:

app.patch("/tabak/:id", (req, res) => {
  const { id } = req.params;
  const foundTabak = tabakArray.find(t => t.id === id);
  // 一行代码完成多个属性赋值
  Object.assign(foundTabak, req.body);
  res.redirect("/tabak");
});

如果需要严格限制只更新指定属性(避免请求体中携带多余字段),可以先解构出需要的属性再传入:

app.patch("/tabak/:id", (req, res) => {
  const { id } = req.params;
  const { name, brand, flavour, score, desc } = req.body;
  const foundTabak = tabakArray.find(t => t.id === id);
  Object.assign(foundTabak, { name, brand, flavour, score, desc });
  res.redirect("/tabak");
});

Object.assign()的作用是将一个或多个源对象的可枚举属性复制到目标对象,这里刚好实现批量更新目标对象属性的需求,完全替代原来的五行赋值代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:24:27