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

使用Mongoose(v8.6.2)连接MongoDB时出现.connect不是函数错误

解决Mongoose v8.6.2在Next.js中".connect不是函数"的问题

可能的原因及修复步骤

1. 检查是否在Edge Runtime中使用Mongoose

Mongoose目前不支持Next.js的Edge Runtime,如果你的数据库连接代码在使用edge runtime的API路由或Server Component中,就会出现这类方法不存在的错误。

  • 修复:在API路由文件顶部添加export const runtime = 'nodejs',强制使用Node.js runtime:
export const runtime = 'nodejs'; // 添加这一行
import mongoose from 'mongoose';

let isConnected = false;

export const connectToDB = async () => {
  // ... 你的原有代码
}

2. 清理依赖缓存并重新安装Mongoose

可能是依赖安装不完整或缓存导致的模块异常:

  • 执行以下命令:
rm -rf node_modules package-lock.json yarn.lock
npm install

3. 移除Mongoose v8中已废弃的连接选项

虽然这不是导致当前错误的直接原因,但Mongoose v8已经默认启用了useNewUrlParser和useUnifiedTopology,继续传入这些选项会触发警告,建议移除:

await mongoose.connect(process.env.MONGODB_URI, {
  dbName: "share_prompt",
  strictQuery: true // 该选项在v8中仍有效,可保留
})

4. 确认Mongoose的导入方式正确

确保你是从mongoose包导入默认导出,而非其他子模块:

// 正确的导入方式
import mongoose from 'mongoose';

// 错误的导入方式(会导致connect方法不存在)
import { mongoose } from 'mongoose';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:00:56