Node.js中mongoose模块连接MongoDB数据库时提示(node:12580) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.的解决方案
在Node.js项目中用mongoose模块(版本5.2.6)命令连接MongoDB数据库代码如下:
const mongoose = require('mongoose'); let db = mongoose.connect('mongodb://localhost/hd15'); mongoose.connection.on("error", function (error) { console.log("数据库连接失败:" + error); }); mongoose.connection.on("open", function () { console.log("------数据库连接成功!------"); });
启动项目后可以正常连接数据库,但是会有如下的提示:
(node:12580) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
这个提示的意思是说mongoose.connect('mongodb://localhost/hd15')这种连接方式已经不推荐了,下个版本的mongoose可能不支持这种写法了,需要添加{ useNewUrlParser: true }这个属性才可以。
翻阅了一下官方文档,官方给的示例也是按照最上面那种写法写的。
其实这个提示不管它也没事,不影响功能的实现,但是如果有强迫症,可以按照提示添加上对应的参数,写法如下:
let db = mongoose.connect('mongodb://localhost/hd15',{ useNewUrlParser: true });
但是这样写的话,又报错了:
数据库连接失败:MongoError: port must be specified
这个报错是说必须指定端口号,好吧,你是官方你说啥都对。
最终,完整代码如下:
const mongoose = require('mongoose'); //27017是MongoDB数据库默认端口号 let db = mongoose.connect('mongodb://localhost:27017/hd15',{ useNewUrlParser: true }); mongoose.connection.on("error", function (error) { console.log("数据库连接失败:" + error); }); mongoose.connection.on("open", function () { console.log("------数据库连接成功!------"); });
liuz
楼主,您好,这段代码是在哪添加的?是在mongodb中?
admin
加在你nodejs代码里啊,你看我提供的那个最终代码还看不出来么?