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

Node.js拆分Mongoose配置模块报错:mongoose.Schema不是构造函数

问题分析与解决

你在拆分代码时犯了一个语法拼写错误:在mongo.js中导出模块时写了module.export,正确的Node.js模块导出语法应该是module.exports(末尾多一个s)。

这个错误会导致server.js里通过require("./mongo")获取到的不是完整的Mongoose实例,而是一个空对象,自然无法找到Schema构造函数,从而抛出TypeError: mongoose.Schema is not a constructor。

修正后的mongo.js代码

let mongoose = require("mongoose");

mongoose.connect(process.env.MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

// 修正导出语法
module.exports = mongoose;

可选优化:添加连接状态监听

为了方便排查数据库连接问题,建议在mongo.js中添加连接状态的监听逻辑:

let mongoose = require("mongoose");

mongoose.connect(process.env.MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

// 监听连接成功事件
mongoose.connection.on("connected", () => {
  console.log("MongoDB 连接成功");
});

// 监听连接错误事件
mongoose.connection.on("error", (err) => {
  console.error("MongoDB 连接失败:", err);
});

module.exports = mongoose;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:27:04