Express项目Postman发POST请求报JSON解析错误怎么解决?
错误原因
- 请求体JSON格式非法:你收到的报错是Express内置的JSON解析中间件在解析POST请求体时触发的,说明你在Postman中提交的JSON格式存在语法错误,最常见的情况是JSON末尾多了多余的逗号、大括号/中括号不配对、字符串未用双引号包裹等。
- 业务代码存在逻辑缺陷:
userController.js中查询用户是否存在的User.findOne方法是异步方法,你没有加await关键字,导致exists变量实际是一个Promise对象,而非查询结果,后续判断if (exists)永远为真,就算请求格式修正后也会一直返回用户已存在的错误。
解决方法
- 修正Postman请求配置
- 打开对应请求的
Body标签,确认选择raw选项,且右侧格式选择JSON,而非Text/JavaScript等其他格式 - 检查提交的JSON内容,确保语法合规,参考示例如下:
- 打开对应请求的
{ "firstName": "张", "lastName": "三", "email": "zhangsan@test.com", "password": "12345678" }
- 修正业务代码
修改userController.js中查询用户的代码,添加await关键字:
// 原代码:const exists = User.findOne({ email }); // 修改后: const exists = await User.findOne({ email });
内容的提问来源于stack exchange,提问作者tejas javalkar
相关产品推荐
相关产品推荐

