这是我的终端上显示的错误。
{
message: 'connect ECONNREFUSED 127.0.0.1:27017',
name: 'MongooseServerSelectionError',
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
我的代码连接到数据库在此:-
const mongoose = require("mongoose");
mongoose
.connect("mongodb://localhost:27017/playground", {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => {
console.log("database connected");
})
.catch(err => {
console.log("Could not connect", err);
});
在我关闭笔记本电脑之前,一切都很正常。我不知道为什么Mongodb指南针显示这个错误“30000毫秒后服务器选择超时”,我只是在本地主机上工作
5条答案
按热度按时间wtlkbnrh1#
您说“...* 在您关闭计算机之前一切正常 *...",很可能是mongod进程在关机时退出。您可以尝试重新启动
mongod
进程并再次连接吗?有关如何启动该进程的详细信息,请参阅此处适用于Windows和适用于Mac。为了避免在重新启动或关闭系统时再次出现类似问题,请考虑将mongod进程作为服务启动,具体操作方式取决于您使用的操作系统,不过,您可以在安装页面上找到完整的说明。例如,如果您使用的是Mac,说明就在这里。
nkkqxpd92#
扩展@Maduekew的答案,在Windows上,单击服务以仅过滤出服务,然后搜索MongoDB,如果状态列显示
Stopped
,则右键单击,然后选择Start
。w8ntj3qf3#
我尝试从服务启动MongoDB,但它没有启动,所以我从终端运行mongod来启动MongoDB,并将连接字符串的localhost部分更改为
127.0.0.1
。rseugnpd4#
我在终端上运行了mongo和mongod,但没有成功。
解决方案为windows,但应类似于mac
在windows上打开任务管理器||Ctrl + Shift + ESC〉选择服务选项卡〉搜索mongo数据库〉右键单击〉启动服务
hyrbngr75#
尝试使用127.0.0.1:27017而不是localhost:27017。它确实有效