【mongoose】连接警告:`open()` is deprecated in mongoose >= 4.11.0

杨成功
  • 2.5k

mongoose 连接成功,但是发出警告,好像是新版本要修改哪?错误信息如下

DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0,use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`

网上找了半天没有结果,求答案,附上连接代码

var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection

db.on('error', console.error.bind(console, '连接错误:'));
db.once('open', function() {
    console.log('连接成功');
})
回复
阅读 12.4k
3 个回答

加个{useMongoClient:true}
比如
mongoose.connect('mongodb://localhost/test',{useMongoClient:true})
就可以了,
我是查看:
http://mongoosejs.com/docs/co...
拉下来最后页的The useMongoClient Option才知道的

最新版mongoose的已知问题,你可以先降级至4.10.8版,或者试试下面的方法不知道有没有用:

var mongoose = require('mongoose');
mongoose.Promise = global.Promise;

let db = mongoose.createConnection('mongodb://localhost/test');

db.on('error', console.error.bind(console, '连接错误:'));
db.once('open', function() {
    console.log('连接成功');
})
Eric
  • 3
新手上路,请多包涵

正好也遇到这个问题,顺便答一下

mongoose.connect('mongodb://localhost/test'); 

//改为
mongoose.connection.openUri('mongodb://localhost/test')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏