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

Node.js项目JSON解析语法错误的根源排查及解决建议

排查建议
  • 先验证接口返回的JSON合法性:在GET路由里直接console.log要返回的原始数据,复制出来在Node环境里用JSON.parse()测试,看是否抛出相同错误。重点检查新增列的数据,有没有未转义的双引号、换行符、特殊字符,或者Buffer这类无法被JSON序列化的类型。
  • 限制express.json()的作用范围:默认这个中间件会尝试解析所有带application/json请求头的请求,哪怕是GET请求。可以给它加配置,只处理需要请求体的HTTP方法:
    server.use(express.json({ 
      type: ['application/json'],
      methods: ['POST', 'PUT', 'PATCH', 'DELETE'] 
    }))
    
    这样GET请求就不会触发JSON解析逻辑,避免无意义的报错。
  • 检查请求头配置:用Insomnia查看GET请求的请求头,确认没有误设置Content-Type: application/json。正常GET请求不需要这个头,一旦设置,express会尝试解析请求体(哪怕是空的),格式不对就会报错。
  • 规范响应发送方式:路由里统一用res.json(data)返回数据,而不是res.send(data)。res.json会自动把数据序列化为合法JSON,并设置正确的Content-Type响应头,避免手动序列化出错。
  • 排查新增列的数据处理:如果新增列存了SQLite的特殊类型(比如BLOB、TEXT里的特殊编码),在查询后要做转换,比如把Buffer转成base64字符串,或者过滤掉无法序列化的字段。
  • 确认中间件顺序:确保express.json()注册在所有路由之前,避免其他中间件修改请求头导致解析逻辑异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:26:01