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

运行dev客户端报TypeError: connectDB is not a function求助

connectDB is not a function 报错修复

问题根因

报错出在数据库连接配置文件/config/db.js的函数定义语法错误:定义connectDB时错误给变量加了解构花括号,写法为const {connectDB} = async () => {}。
这种写法的逻辑是从等号右侧的返回值里解构出名为connectDB的属性,但等号右侧是一个箭头函数,本身不存在connectDB属性,最终通过module.exports导出的connectDB实际是undefined,在server.js里调用时自然会抛出「不是函数」的类型错误。

修复方法

  • 修改/config/db.js的函数定义,去掉connectDB外层多余的花括号,修正后完整代码如下:
const mongoose = require('mongoose');

const connectDB = async () => {
    try {
        const conn = await mongoose.connect(process.env.MONGO_URI,{ 
            useNewUrlParser: true,
            useUnifiedTopology: true 
        });

        console.log(`MongoDB connected: ${conn.connection.host}`.cyan.underline)
    } catch (error) {
        console.log(error)
        process.exit(1)
    }
}

module.exports = connectDB
  • 配套检查:如果要保留上述代码里.cyan.underline的彩色日志效果,需要把server.js中被注释的const colors = require('colors')取消注释,同时确保已经安装了colors依赖,否则后续会触发新的「.cyan不是函数」报错。
  • 保存文件后重启dev运行脚本,后端服务即可正常启动连接数据库。

日志里前端部分的webpack弃用警告不影响项目正常运行,属于依赖版本兼容提示,可以暂时忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:48:19