Node.js连接MongoDB出现DeprecationWarning,求无错误连接方案
解决MongoDB连接的DeprecationWarning问题
嘿,这个警告确实有点烦人,但解决起来超简单!
这个DeprecationWarning是因为MongoDB Node.js驱动正在逐步淘汰旧的URL字符串解析器,官方明确建议我们切换到新的解析器,只需要在连接时加个配置选项就能搞定。
具体修改步骤:
你现在的server.js只是存了数据库连接字符串,实际的连接逻辑肯定在另一个调用MongoClient.connect()的文件里。找到那个文件,按下面的方式改:
- 原来的连接代码大概是这样:
const MongoClient = require('mongodb').MongoClient; const { mongoURI } = require('./server.js'); MongoClient.connect(mongoURI, (err, client) => { // 你的数据库操作逻辑 });
- 只需要在
connect方法的第二个参数位置,传入包含useNewUrlParser: true的配置对象就行:
const MongoClient = require('mongodb').MongoClient; const { mongoURI } = require('./server.js'); MongoClient.connect(mongoURI, { useNewUrlParser: true }, (err, client) => { if (err) { console.error('数据库连接失败:', err); return; } console.log('数据库已成功连接!'); // 继续你的业务逻辑 });
额外小提示:
你用的MongoDB 3.4.18完全兼容新的URL解析器,不用担心版本匹配问题。如果之后遇到类似的DeprecationWarning(比如关于useUnifiedTopology的),可以把配置扩展成:
{ useNewUrlParser: true, useUnifiedTopology: true }
这样能提前规避更多未来的弃用警告。
内容的提问来源于stack exchange,提问作者M.Gumede
相关产品推荐
相关产品推荐

