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

Node.js使用Mongoose操作MongoDB时userSchema未定义引用错误如何解决

错误原因

  • 你的路由文件中没有定义也没有引入过userSchema变量,调用mongoose.model('Users', userSchema)时找不到对应变量,直接触发引用错误。
  • 你已经在Schema定义文件中通过module.exports = mongoose.model('Users', userSchema)导出了编译完成的User模型,完全不需要在路由代码中重复编译模型,重复调用mongoose.model编译同一个模型还可能触发mongoose的重名模型报错。

解决方法

  1. 首先修正Schema定义文件的小问题:你在email字段的配置里写了大写的Required,mongoose的字段必填配置是小写的required,大写的配置不会生效,直接改成required: 'Email address cannot be left blank.'即可。
  2. 修改路由文件头部的代码,删除错误的var User = mongoose.model('Users', userSchema);这一行,改为引入你写的Schema文件即可。
    假设你的Schema代码保存在./models/user.js路径下,路由文件保存在./routes/user.js路径下,路由文件的头部引入代码改成如下即可:
var mongoose  = require('mongoose');
var crypto = require('crypto'), hmac, signature;
const { check, validationResult } = require('express-validator/check');
const { matchedData, sanitize } = require('express-validator/filter');
// 引入提前定义好的User模型,路径根据你自己的项目文件结构调整
var User = require('../models/user');

按上述修改后就不会再出现userSchema is not defined的报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:45:10