DeprecationWarning: `open()` 在 mongoose >= 4.11.0 中已弃用?请使用 `openUri()` 代替,或者设置 `useMongoClient`

fan*_*873 5 mongodb node.js

我在 Node.js 项目中使用 MongoDB,当我node app.js在项目中运行时出现如下问题:

\n\n
\n

DeprecationWarning:open()在 mongoose >= 4.11.0\xef\xbc\x8cuse 中已弃用openUri(),或者useMongoClient如果使用connect()或则设置该选项createConnection()

\n
\n\n

我的核心代码:

\n\n
var mongoose = require('mongoose')\nmongoose.connect('mongodb://localhost/test');\nvar db = mongoose.connection\n\ndb.on('error', console.error.bind(console, 'connect error:'));\ndb.once('open', function() {\n    console.log('connect success');\n})\n
Run Code Online (Sandbox Code Playgroud)\n

air*_*aft 12

来自http://mongoosejs.com/docs/connections.html

const options = {
  useMongoClient: true,
  autoIndex: false, // Don't build indexes
  reconnectTries: Number.MAX_VALUE, // Never stop trying to reconnect
  reconnectInterval: 500, // Reconnect every 500ms
  poolSize: 10, // Maintain up to 10 socket connections
  // If not connected, return errors immediately rather than waiting for reconnect
  bufferMaxEntries: 0
};
mongoose.connect(uri, options);
Run Code Online (Sandbox Code Playgroud)

当你连接 mongodb 时,你应该添加{useMongoClient:true}

mongoose.connect('mongodb://localhost/test',{useMongoClient:true})
Run Code Online (Sandbox Code Playgroud)