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

使用Express V4 POST方法时出现[object Object]错误的排查求助

问题分析:POST请求生成"id": "[object Object]1"的错误原因与解决方法

错误原因

这个错误的核心是生成新ID时将对象类型值与数字直接拼接。JS中对象与数字做加法运算时,会先把对象转为字符串"[object Object]",再和数字拼接成"[object Object]1"。常见触发场景:

  • 现有tours数组中某条数据的id被错误定义为对象类型,而非数字/字符串数字;
  • 获取最后一条数据的id时,未正确提取数字值,直接执行lastTour.id + 1操作。

错误代码示例:

const newTour = req.body;
const lastTour = tours[tours.length - 1];
// lastTour.id是对象类型,导致拼接错误
newTour.id = lastTour.id + 1;
tours.push(newTour);

解决方法

  1. 修正ID类型与生成逻辑
    确保现有数据的id为数字或可转换为数字的字符串,生成新ID时先做类型转换:
const newTour = req.body;
if (tours.length === 0) {
  newTour.id = 1;
} else {
  const lastTour = tours[tours.length - 1];
  // 统一转换为数字类型后再运算
  const lastId = typeof lastTour.id === 'string' ? parseInt(lastTour.id, 10) : lastTour.id;
  newTour.id = lastId + 1;
}
tours.push(newTour);
  1. 检查请求体解析配置
    确认Express已配置express.json()中间件,否则无法正确解析POST请求的JSON格式数据,可能间接导致ID生成逻辑异常:
// 必须在路由注册前配置
app.use(express.json());
  1. 校验初始数据格式
    检查tours数组的初始数据,确保所有元素的id均为数字或合法的数字字符串,避免源头数据类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:35:26