如何解决连接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
相关产品推荐
相关产品推荐

