Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoNetworkError:无法在第一次连接时连接到服务器[localhost:27017][MongoNetworkError:connect-EConrefuse127.0.0.1:27017]_Node.js_Mongodb_Express - Fatal编程技术网

Node.js MongoNetworkError:无法在第一次连接时连接到服务器[localhost:27017][MongoNetworkError:connect-EConrefuse127.0.0.1:27017]

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

我是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 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