Node.js MongoNetworkError:无法在第一次连接时连接到服务器[localhost:27017][MongoNetworkError:connect-EConrefuse127.0.0.1:27017]
我是nodeJS的新手,从youtube上的预告片开始学习,一切都很顺利,直到我添加了连接功能Node.js MongoNetworkError:无法在第一次连接时连接到服务器[localhost:27017][MongoNetworkError:connect-EConrefuse127.0.0.1:27017],node.js,mongodb,express,Node.js,Mongodb,Express,我是nodeJS的新手,从youtube上的预告片开始学习,一切都很顺利,直到我添加了连接功能 mongo.connect("mongodb://localhost:27017/mydb") 当我在cmd(node start app)上运行代码时,出现以下错误: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNR
mongo.connect("mongodb://localhost:27017/mydb")
当我在cmd(node start app)上运行代码时,出现以下错误:
MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
有人能解释一下我错过了哪一步吗?
我的代码:
var express = require("express");
var MongoClient = require('mongodb');
var url = "mongodb://localhost:27017/mydb";
var webService = require("./webService");
var server = express();
MongoClient.connect(url, function (err, db) {
if (err) throw err;
console.log("Database created!");
db.close();
});
server.use(express.urlencoded({ extended: true }));
server.set('views', __dirname);
server.get('/', function (request, response) {
response.sendFile(__dirname + '/MainPage.html');
});
server.get('/Sign', function (request, response) {
response.render(__dirname + '/Sign.ejs');
});
server.post("/signUp", webService.signUp);
server.post("/createUser", webService.createUser);
server.listen(5500);
您必须首先在系统中安装并启动
MongoDB
数据库服务器
使用以下链接安装MongoDB
在尝试了谷歌提出的所有堆栈溢出解决方案后,我发现了我的特殊问题所在我很久以前就编辑了我的主机文件,以允许我从virtualbox访问本地主机 删除此条目为我解决了问题,并从上述解决方案中给出的链接正确安装了mongoDB,包括正确的承诺处理代码:
mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
这件事发生在我身上,我发现这是因为错误的互联网连接。如果我在家里使用公共wifi,出于安全原因会屏蔽各种网站,Mongo会拒绝连接。但是,如果我使用自己的移动数据,我可以连接到数据库。只要在基本文件夹上的终端中运行mongod,如果一切都已设置好,例如安装MongoDB和mongoose之类的客户端。运行命令后,运行您正在处理的项目文件,然后错误就不会出现。首先通过命令行mkdir C:\data\db创建文件夹(这是用于数据库的)
然后通过一个命令提示符运行命令mongod--port 27018(管理模式)-您可以根据自己的意愿指定名称端口号您可以通过运行此命令检查错误的详细信息
sudo服务mongod状态
如果错误是这样的
- 无法取消套接字文件/tmp/mongodb-27017的链接。sock未知错误
- src/mongo/transport/transport\u layer\u asio.cpp 670处的致命断言40486
rm/tmp/mongodb-27017.sock
1)如果尚未安装mongodb,请安装它
2) 打开一个新的终端,键入“mongo”。这将把您连接到本地主机上运行的MongoDB实例,默认端口为27017:我遇到了同样的问题,但经过了大量的RND。我发现问题出在哪里,所以在你的终端上运行这个命令 sudo服务mongod启动
然后在终端上运行mongo,遵循上面@CoryM答案背后的逻辑:
在尝试了谷歌提出的所有关于堆栈溢出的解决方案后,我发现了我的问题所在。很久以前,我就编辑了我的主机文件,以允许我从virtualbox访问我的本地主机 删除此条目为我解决了它 两个月前,我也为Python机器学习设置编辑了主机文件。因此,我使用
127.0.0.1
代替localhost
,而不是因为我仍然需要它而删除它,并且它起到了作用:
mongoose.connect('mongodb://127.0.0.1/testdb')
他们中的许多人没有添加这个,特别是在AWSEC2实例中,我遇到了相同的问题,并尝试了不同的解决方案。 解决方案:代码中的一个数据库URL缺少此参数“authSource”,添加此参数对我有效
mongodb://myUserName:MyPassword@ElasticIP:27017/databaseName?authSource=admin
mongoose.Promise = global.Promise;
我在当地星巴克工作时遇到了这个问题,我记得当我最初通过Mongo Atlas建立数据库时。我将我的IP地址设置为能够访问数据库。在浏览了几个帖子后,我在Atlas上更改了IP地址,问题就消失了。希望这对别人有帮助 我的情况有点不同。重新启动系统后,在进行本地开发时,我没有在Mongo上列出我的IP地址
Select Network Access > Add IP Address > Add your current IP Address
最好只连接到localhost Mongoose数据库并创建自己的集合。别忘了提到端口号。(默认值:27017)
要获得最佳视图,请下载MongoDB UI的Mongoose compass 如果在
Mongodb
之前安装,只需从以下代码开始:
brew services start mongodb-community
next => mongod
如果不这样安装
这个帮助了我。
尝试创建一个新文件夹,如果您的MongoDB安装在C:\Program Files中,则该文件夹应称为db,并位于data文件夹中。
C:\data\db
启动mongod时,应该有一个数据库“未找到”的日志。只需在系统上安装MongoDB即可。就这样 我已连接到VPN,连接已完成。我当时使用的是学校的WiFi,显然有一些限制。这对我很有效
mongodb://myUserName:MyPassword@ElasticIP:27017/databaseName?authSource=admin
mongoose.Promise = global.Promise;
我使用的是localhost,因此我将其更改为:
mongodb://127.0.0.1:27017/mydb
我不知道这是否有用,但当我这样做时,它起了作用: 终端中的命令
mongo
然后我复制了mongo命令返回的URL,类似于
mongodb://127.0.0.1:*port*
在我的JS代码中,我用这个替换了URL。我猜你一定是在连接cloud.mongodb.com到你的集群 一个快速修复方法是转到“连接”选项卡并添加当前IP地址(在浏览器或桌面应用程序的群集门户中)。IP地址必须由于各种原因而更改,例如更改wifi
请尝试这种方法,当我遇到这个错误时,它对我很有效。您的IP地址可能已更改。 如果您最近重新启动了调制解调器,这会改变您的IP,而您的IP可能在Atlas上被列入了白名单
所以,您需要跳回Atlas并将新的IP地址添加到“安全”>“网络访问”下的白名单中。您需要首先初始化mongoDB数据库,您可以在终端中运行“mongod”,然后它就会正常工作。我的问题是
mongoDB
服务器的端口号错误
我有:
DATABASE_URL= "mongodb://localhost:3000/node-express-mongodb-server"
在我的.env
文件(我的环境变量)中,但我在运行mongoDB服务器之前编写了它。因此,当我运行mongoDB服务器时,我
DATABASE_URL= "mongodb://localhost:3000/node-express-mongodb-server"
DATABASE_URL= "mongodb://localhost:27017/node-express-mongodb-server"
sudo vi /etc/mongod.conf
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1 // change here to 0.0.0.0
port: 27017
setParameter:
enableLocalhostAuthBypass: false
sudo service mongod restart
/etc/csf/csf.conf
# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222,27017"
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,2222,27017"
csf -r