未处理的拒绝MongoError:必须指定端口

Lon*_*Rob 20 mongoose node.js

根据Mongoose文档,您可以使用默认端口27017连接到MongoDB.

我的mongod输出结束于:

 I NETWORK  [initandlisten] waiting for connections on port 27017
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试连接到我的数据库时,如下所示:

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp');
Run Code Online (Sandbox Code Playgroud)

我明白了

Unhandled rejection MongoError: port must be specified
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

我有Mongoose v5.2.0,节点v9.10.0和MongoDB shell版本v4.0.0.

如果我更改我的连接字符串以包含端口,mongodb://localhost:27017/myapp那么我能够连接.但我不确定为什么我需要这个.

vka*_*v15 28

猫鼬维护者在这里,对不起麻烦.我们将在接下来的几天内解决这个问题.在此之前,请在URI中指定端口:mongoose.connect('mongodb://localhost:27017/myapp');.我们还将确保更新相关文档.

  • 极好的!这就是开源 + Stack Overflow 的伟大之处。 (2认同)

小智 7

还应在最新版本的mongoose(5.2.0)中的mongoose.connect()中指定端口:

mongoose.connect("mongodb://localhost:27017/cat_app");
Run Code Online (Sandbox Code Playgroud)

27017是MongoDB运行mongod的默认端口.

另一个解决方案是恢复到mongoose 5.1.7,这不会导致此问题:

npm install mongoose@5.1.7 --save
Run Code Online (Sandbox Code Playgroud)

如果能解决问题,请告诉我.