使用ExpressJS与Axios前后端传参异常:仅返回name字段
问题解决:Express后端仅返回name字段,尽管请求Payload包含完整数据
问题原因
你的后端代码中res.json()的使用方式错误。res.json()仅接受一个参数作为响应体对象,当你传入多个参数(name, email, password)时,只有第一个参数会被作为响应内容返回,后面的参数会被直接忽略,这就是你只收到name字段的核心原因。
修正后的后端代码
app.post('/register', (req,res)=> { const {name,email,password} = req.body; // 将三个字段包装成一个对象传入res.json() res.json({ name, email, password }); });
补充说明
res.json()的作用是将传入的对象或值序列化为JSON格式并发送给客户端。如果需要返回多个字段,必须把它们整合到一个对象中传递,不能分开作为多个参数传入。
另外,确认你的Express应用已经配置了解析JSON请求体的中间件(比如express.json())——从你能正确获取req.body中的字段来看,这部分应该已经配置完成,但如果后续出现解析问题,可以在代码开头添加:
app.use(express.json());
内容的提问来源于stack exchange,提问作者hashimalkhabbaz
相关产品推荐
相关产品推荐

