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

Node.js 未处理的拒绝MongoError:必须指定端口,node.js,mongoose,Node.js,Mongoose,根据需要,您可以使用默认端口27017连接到MongoDB 我的mongod输出以以下内容结束: I NETWORK [initandlisten] waiting for connections on port 27017 但当我尝试像这样连接到我的数据库时: const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/myapp'); 我明白了 Unhandled rejection Mong

根据需要,您可以使用默认端口27017连接到MongoDB

我的
mongod
输出以以下内容结束:

 I NETWORK  [initandlisten] waiting for connections on port 27017
但当我尝试像这样连接到我的数据库时:

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp');
我明白了

Unhandled rejection MongoError: port must be specified
这里发生了什么

我有MongooseV5.2.0、NodeV9.10.0和MongoDBshell版本v4.0.0


如果我更改连接字符串以包含端口
mongodb://localhost:27017/myapp
然后我就可以连接了。但我不确定为什么需要这个。在最新版本的mongoose(5.2.0)中,还应在mongoose.connect()中指定端口:

27017是MongoDB运行mongod的默认端口

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

npm install mongoose@5.1.7 --save

让我知道这是否解决了问题。

这里是猫鼬维护者,很抱歉给您带来麻烦。我们将在未来几天内修复。在此之前,请在URI中指定端口:
mongoose.connect('mongodb://localhost:27017/myapp');。我们还将确保更新。

我唯一能找到此错误的地方是MongoDb native 2.0的源代码。默认端口绝对是可选的,这让我感到困惑。@AlexisFacks我确信某些版本的东西有问题,如node、mongoose或MongoDb。太棒了!这就是开源+堆栈溢出的伟大之处。
npm install mongoose@5.1.7 --save