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

连接MongoDB时遇TypeError:connectDB不是函数问题求助

问题解决:TypeError: connectDB is not a function

错误原因

你的db.js文件中定义了connectDB函数,但没有将它导出,导致server.js里通过const { connectDB } = require('./db.js')无法获取到这个函数,因此触发类型错误。

解决方案

修改db.js,添加函数导出即可,有两种实现方式:

方式1:在文件末尾添加模块导出

const { MongoClient } = require('mongodb');
const uri = 'mongodb://localhost:27017/mydatabase';

let db = null;

async function connectDB() {
  console.log("Did you make it");
  const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology:true});
  try {
      await client.connect();
      db = client.db();
      console.log("connected to MongoDB");
  } catch(err) {
      console.error("Could not connect to MongoDB", err);
  }
}

// 添加导出代码
module.exports = { connectDB };

方式2:直接导出函数

const { MongoClient } = require('mongodb');
const uri = 'mongodb://localhost:27017/mydatabase';

let db = null;

// 直接将函数挂载到exports对象上
exports.connectDB = async function() {
  console.log("Did you make it");
  const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology:true});
  try {
      await client.connect();
      db = client.db();
      console.log("connected to MongoDB");
  } catch(err) {
      console.error("Could not connect to MongoDB", err);
  }
}

补充说明

这个问题属于Node.js的CommonJS模块系统问题,和React无关。修改导出后,server.js里的导入代码无需改动,即可正常调用connectDB().then(...)启动服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:30:55