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

如何解决连接MongoDB时出现的TypeError: db.on is not a function错误

解决MongoDB连接时的TypeError: db.on is not a function问题

嘿,这个问题其实挺常见的,我一眼就揪出问题所在啦!

你代码里的这一行写错了:

var db = mongoose.Connection; 

这里的mongoose.Connection(大写的C)是Mongoose提供的Connection类,而不是当前你通过mongoose.connect建立的连接实例。类本身并没有on方法,自然会抛出这个错误。

正确的写法应该是使用小写的connection,它是Mongoose已经帮你创建好的连接实例:

var db = mongoose.connection; 

修正后的完整代码如下:

var mongoose = require('mongoose'); 
var mongoDB = 'mongodb://localhost/red_bicicletas'; 
mongoose.connect(mongoDB, {useNewUrlParser: true }); 
mongoose.Promise = global.Promise; 
// 改成小写的connection,获取当前连接实例
var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'MongoDB connection error'));
// 可以额外加个连接成功的提示,方便调试
db.once('open', function() {
  console.log('MongoDB连接成功啦!');
});

另外补个小提示:现在Mongoose的新版本(v6及以上)已经默认开启useNewUrlParser了,你可以把这个配置项删掉,让代码更简洁~

内容的提问来源于stack exchange,提问作者Soy Miguel Morla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 08:38:15