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

Node.js+Express+MySQL实现MVC注册功能时报Cannot read properties of undefined错误

错误原因及解决方案

1. 核心原因:req.body未被正确解析

Express默认不会自动解析请求体,你需要手动注册内置的解析中间件才能让req.body正常读取值。
在你的项目入口文件(通常为app.js/server.js)中,路由注册代码之前添加以下配置:

const express = require('express')
const app = express()

// 新增以下两行解析中间件
app.use(express.json()) // 解析JSON格式请求体
app.use(express.urlencoded({ extended: true })) // 解析表单格式请求体

// 后面再放你的路由注册代码,比如
// app.use('/api/auth', authRouter)

2. 校验逻辑缺陷导致报错

你当前的req.body空值校验逻辑缺少return,就算触发了400返回,代码仍然会继续向下执行读取req.body.firstName,触发报错。
修改AuthController中的校验部分代码:

// Validate request
if (!req.body) {
  res.status(400).send({
    message: "Content can not be empty!"
  });
  return; // 新增return终止后续逻辑执行
}

3. 接口请求规范检查

调用注册接口时需要保证配置正确:

  • 注册路由必须是POST类型,GET请求不会携带请求体,会直接导致req.body为空
  • 如果是传JSON格式参数,请求头必须带Content-Type: application/json
  • 如果是表单提交,请求头必须带Content-Type: application/x-www-form-urlencoded

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:54:05