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.的解决方案

  • 2018-08-07
  • 5,946
  • 2

在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代码里啊,你看我提供的那个最终代码还看不出来么?

© 2005-2019 by 孙琪峥 | 鲁ICP备18012478号-1