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

Postman发送POST请求失败,报JSON解析错误:Unexpected token a,求排查

问题排查与解决

1. 清理冗余的请求解析中间件

你的代码同时启用了express.json()和bodyParser.json(),这两个功能完全重复(Express 4.16+已内置bodyParser的核心功能),冗余配置可能引发解析冲突。建议简化代码,保留一套解析逻辑即可:

const express = require("express")
const app = express()
const mongoose = require("mongoose")
require('dotenv').config();
const usersRoute = require('./routes/auth')

// 处理JSON格式请求体(仅保留这一行即可)
app.use(express.json())
// 处理urlencoded格式请求体(若业务需要则保留)
app.use(express.urlencoded({ extended: false }))

mongoose
  .connect(process.env.MONGO_URL, { useNewUrlParser: true })
  .then(() => {
    console.log("DB is Connected!");
  })
  .catch((err) => {
    console.log(err);
  });

app.use('/',usersRoute)

app.listen('3500',()=>
console.log("our server is running")
)

2. 检查Postman请求配置(核心排查点)

报错提示JSON解析失败,大概率是请求格式不合法:

  • 强制设置请求头:在Postman的Headers标签中添加Content-Type: application/json,确保后端识别请求体为JSON格式。
  • 校验请求体语法:
    • 必须使用双引号包裹字符串(JSON语法要求,单引号不合法),检查是否存在逗号多余、括号不匹配、漏写引号等问题。错误提示里的token a in JSON at position 51,说明第51位的字符"a"破坏了JSON结构,针对性检查该位置的内容。
    • 可将请求体内容复制到JSON校验工具中,快速定位语法错误。
  • 确认请求体格式选项:在Postman的Body标签中选择raw -> JSON,不要选form-data或x-www-form-urlencoded(除非接口明确要求这类格式)。

3. 检查路由处理代码

打开./routes/auth文件,确认POST路由中没有手动调用JSON.parse()的逻辑——express.json()已经自动将请求体解析为req.body,重复解析会引发错误。

内容的提问来源于stack exchange,提问作者The Tech Guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:06:17