我是nodeJS的新手,在youtube上关注预告片开始学习,一切顺利,直到我添加连接功能,如果是mongodb,
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);
答案 0 :(得分:11)
您必须先在系统中安装SELECT FIND_IN_SET('0875555555', (SELECT customer_mobile FROM your_table_name)) as found
数据库服务器并启动它。
使用以下链接安装MongoDB
答案 1 :(得分:8)
尝试了每个解决方案之后,谷歌在堆栈溢出时都想出了办法,我发现了我的特殊问题。 很久以前,我已经编辑了主机文件,以便可以从我的虚拟机访问本地主机。
删除此条目为我解决了该问题,并通过上述解决方案中提供的链接正确安装了mongoDB,并包括正确的Promise处理代码:
mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
答案 2 :(得分:5)
您的IP地址可能已更改。
如果您最近重新启动了调制解调器,这将更改您的IP(可能已在Atlas上列入白名单)。
Soooo,您需要跳回到Atlas并将新IP地址添加到“安全性>网络访问”下的白名单中。
答案 3 :(得分:2)
其中许多人没有添加此内容,尤其是在AWS EC2实例中,我遇到了相同的问题,并尝试了不同的解决方案。 解决方案:代码中我的数据库URL之一缺少此参数“ authSource”,因此添加了该参数对我有用。
mongodb://myUserName:MyPassword@ElasticIP:27017/databaseName?authSource=admin
答案 4 :(得分:1)
遵循上面@CoryM答案的逻辑:
尝试了每个解决方案之后,谷歌在堆栈溢出时都想出了办法,我发现了我的特殊问题。很久以前,我已经编辑了hosts文件,以允许我从virtualbox访问本地主机。
删除该条目对我来说解决了...
2个月前,我还有效地编辑了主机文件以进行Python机器学习设置。因此,我使用127.0.0.1
代替了localhost
而不是删除它,因为我仍然需要它,它起作用了:
mongoose.connect('mongodb://127.0.0.1/testdb')
答案 5 :(得分:1)
如果mongoDB服务器已经安装并且无法从远程主机连接,请按照以下步骤操作,
登录到您的计算机,打开位于/etc/mongod.conf
的mongodb配置文件,并将bindIp
字段更改为特定的ip / 0.0.0.0
,然后重启mongodb服务器。
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
更改bindIp
后,必须使用以下命令重新启动mongodb
sudo service mongod restart
现在,您将能够从远程服务器连接到mongodb服务器。
答案 6 :(得分:1)
我遇到了同样的问题,但是经过了很多RND。我发现问题出在哪里,所以请在您的终端上运行此命令。
sudo服务mongod启动
答案 7 :(得分:1)
您可以通过运行此命令来检查错误的详细信息
sudo service mongod status
如果错误是这样的
只需运行此操作即可解决您的问题
rm /tmp/mongodb-27017.sock
答案 8 :(得分:1)
如果已经进行了所有的设置(例如安装mongo db,并为其安装了客户端,例如mongoose),则只需在基本文件夹的终端中运行mongod即可。运行命令后,运行您正在处理的项目文件,然后该错误不应出现。
答案 9 :(得分:1)
这发生在我身上,我发现这是由于互联网连接故障。如果我在自己的位置使用公共wifi(出于安全原因阻止了各种网站),Mongo将拒绝连接。但是,如果我要使用自己的移动数据,则可以连接到数据库。
答案 10 :(得分:0)
因此,当上述解决方案都不适合我时,在正确安装所有内容后,我想重新启动系统。
现在可以使用了。
请注意,我做了上面所说的一切,但没有运气。唯一的重启对我有用。!! 您可能还想重新启动一次。
答案 11 :(得分:0)
您必须先在系统中安装 MongoDB 数据库服务器并启动它。
Use the below link to install MongoDB
如果您的系统中已经安装了 MongoDB 数据库,那么您必须通过以下步骤检查您的数据库是否处于起始位置:
答案 12 :(得分:0)
您的防火墙阻止了用于连接MongoDB的端口27017。
尝试查找系统中正在使用的防火墙, 例如以我为例, 配置文件位于
/etc/csf/csf.conf
按照以下步骤查找TCP_IN和TCP_OUT并将端口27017添加到允许的传入和传出端口
# 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以应用它:
csf -r
答案 13 :(得分:0)
我的问题是mongoDB
服务器的端口号错误。
我有:
DATABASE_URL= "mongodb://localhost:3000/node-express-mongodb-server"
在我的.env
文件中(我的环境变量),但是我在运行mongoDB server
之前已经写了它。因此,当我运行mongoDB server
时,它写了一个不同的端口号,因此我不得不更改它。我将其更改为正确的端口号(该端口号由mongoDB
写在我的cmd窗口中):
DATABASE_URL= "mongodb://localhost:27017/node-express-mongodb-server"
现在工作正常。
答案 14 :(得分:0)
我想您必须将cloud.mongodb.com连接到您的集群。
一种快速的解决方法是转到“连接”标签并添加您当前的IP地址(在浏览器或桌面应用的群集门户中)。 IP地址必须由于多种原因而更改,例如更改wifi。
只需尝试这种方法,当我遇到此错误时它对我有用。
答案 15 :(得分:0)
我不知道这是否会有所帮助,但是当我这样做时它会起作用:
在终端中的命令mongo
。
然后我复制了mongo命令返回的URL,类似
mongodb://127.0.0.1:*port*
我用JS代码中的URL替换了它。
答案 16 :(得分:0)
这对我有用。
mongoose.Promise = global.Promise;
.connect(
"mongodb://127.0.0.1:27017/mydb",
{ useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true}).then(db => {
console.log("Database connected");
}).catch(error => console.log("Could not connect to mongo db " + error));
我正在使用localhost,所以将其更改为:
mongodb://127.0.0.1:27017/mydb
答案 17 :(得分:0)
我已连接到VPN,并且连接已完成。我当时在使用学校的WiFi,显然有限制。
答案 18 :(得分:0)
这帮助了我。 尝试创建一个新文件夹,如果您的MongoDB安装在C:\ Program Files中,则该文件夹应名为db,且位于文件夹数据中。 C:\ data \ db
启动mongod时,应该有一个“未找到”数据库的日志。
答案 19 :(得分:0)
如果在Mongodb
之前安装,只需以以下代码开头:
brew services start mongodb-community
next => mongod
如果未以这种方式安装
1.brew tap mongodb/brew
2.brew install mongodb-community
3.brew services start mongodb-community
4.mongod
答案 20 :(得分:0)
mongoose.connect('mongodb://localhost:27017/').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
最好只连接到本地Mongoose数据库并创建自己的集合。不要忘记提及端口号。 (默认:27017)
为获得最佳视图,请下载MongoDB UI的Mongoose-compass。
答案 21 :(得分:0)
我的情况有些不同。重新启动系统后,在进行本地开发时,我没有在Mongo上将我的IP地址列入白名单。
Select Network Acess > Add IP Address > Add your current IP Address
答案 22 :(得分:0)
我在当地的星巴克工作时遇到了这个问题,我还记得我最初通过Mongo Atlas设置数据库时遇到的问题。我将我的IP地址设置为能够访问数据库。在浏览了多个线程之后,我在Atlas上更改了IP地址,问题就消失了。希望这对某人有帮助。
答案 23 :(得分:0)
1)如果尚未安装mongodb,请安装它。
2)打开一个新终端,键入“ mongo”。这将使您连接到在默认端口为27017的本地主机上运行的MongoDB实例:
答案 24 :(得分:0)
首先通过命令行mkdir C:\ data \ db创建文件夹(用于数据库) 然后通过一个命令提示符(管理模式)运行mongod --port 27018命令-您可以根据需要输入名称端口号
答案 25 :(得分:-1)
您需要首先初始化mongoDB数据库,可以在终端中运行“ mongod”,然后它将正常工作。
答案 26 :(得分:-1)
如果您在.msi安装程序上安装了mongo,请打开软件并选择“修复”而不是“安装”,然后重试,这可能对某人有帮助。
答案 27 :(得分:-2)
您需要从此处https://www.mongodb.com/download-center/community?jmp=docs
在本地安装或重新安装MongoDB服务。或者您可以从此处在云上使用猫鼬:https://www.mongodb.com/cloud/atlas
这两种解决方案为我解决了这个问题。
答案 28 :(得分:-3)
只需在您的系统上安装MongoDB。而已。