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

Node.js项目运行报ReferenceError: _user is not defined错误如何解决

问题原因及修复方案

首要报错修复(直接解决ReferenceError: _user is not defined)

你在routes/user.js的signup接口中定义变量时存在语法错误,const关键字和变量名_user被连写为了const_user,导致后续调用的_user没有被定义:

// 错误写法
const_user = new User({
// 修正写法
const _user = new User({

修改后即可解决当前的变量未定义报错。


其他潜在问题修复(避免后续触发其他报错)

  • 数据库连接字符串语法错误
    index.server.js里的MongoDB连接字符串开头缺失反引号,且本地部署的MongoDB不需要使用+srv协议:
// 错误写法
mongoose.connect(
    mongodb+srv://${process.env.MONGO_DB_USER}:${process.env.MONGO_DB_PASSWORD}@localhost:27017/${process.env.MONGO_DB_DATABASE}?retryWrites=true&w=majority`,
// 本地部署修正写法
mongoose.connect(
    `mongodb://${process.env.MONGO_DB_USER}:${process.env.MONGO_DB_PASSWORD}@localhost:27017/${process.env.MONGO_DB_DATABASE}?retryWrites=true&w=majority`,

如果使用的是MongoDB Atlas云服务可保留+srv前缀,补全开头的反引号即可。

  • 字段名不匹配导致的必填校验报错
    signup接口中解构的firstname、lastname为全小写格式,和models/user.js里定义的驼峰格式字段firstName、lastName不匹配,会导致字段为空触发必填校验失败:
// 错误写法
const {
    firstname,
    lastname,
    email,
    password
} = req.body;
const _user = new User({
    firstname,
    lastname,
// 修正写法
const {
    firstname: firstName,
    lastname: lastName,
    email,
    password
} = req.body;
const _user = new User({
    firstName,
    lastName,
  • 密码校验方法定义错误
    models/user.js中定义实例方法的属性应为methods,你少写了后缀s:
// 错误写法
userSchema.method = {
// 修正写法
userSchema.methods = {

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:09:04