it-swarm.com.de

MongoNetworkError: Verbindung zum Server [localhost: 27017] konnte beim ersten Verbinden nicht hergestellt werden.

Ich bin neu in nodeJS, habe angefangen zu lernen, indem ich einem Trailer auf youtube folgte.

mongo.connect("mongodb://localhost:27017/mydb")

wenn ich meinen Code auf cmd (Node start-app) laufe, erhalte ich folgende Fehlermeldung: 

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]

Könnte mir jemand erklären, welchen Schritt ich übersehen habe? mein code: 

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);
10
Karam Haj

Sie müssen zuerst MongoDB Datenbankserver in Ihrem System installieren und starten.

Verwenden Sie den folgenden Link, um MongoDB zu installieren.

https://docs.mongodb.com/manual/installation/

10
Vishnu

Viele von ihnen fügen dies nicht hinzu, insbesondere in der AWS EC2-Instanz. Ich hatte das gleiche Problem und habe verschiedene Lösungen ausprobiert. Lösung: Einer meiner Datenbank-URLs im Code fehlte dieser Parameter 'authSource'. Das Hinzufügen funktionierte für mich.

mongodb://myUserName:[email protected]:27017/databaseName?authSource=admin
6
NadZ

Nachdem ich JEDE Lösung ausprobiert hatte, bei der google einen Stack-Überlauf gefunden hatte, fand ich heraus, was mein spezielles Problem war. Ich hatte meine hosts-Datei vor langer Zeit bearbeitet, damit ich von meiner Virtualbox aus auf meinen localhost zugreifen kann.

Das Entfernen dieses Eintrags löste es für mich, zusammen mit der korrekten Installation von MongoDB über den in der obigen Lösung angegebenen Link, und beinhaltete den korrekten Versprechungsbehandlungscode:

mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
    console.log("Not Connected to Database ERROR! ", err);
});
4
Cory M

Ich stand vor dem gleichen Problem, aber nach viel RND. Ich fand das whts das Problem, also führen Sie diesen Befehl auf Ihrem Terminal aus.

Sudo-Dienst mongod Start

Folgen Sie der Logik hinter der obigen Antwort von @ CoryM:

Nachdem ich JEDE Lösung ausprobiert hatte, die Google auf den Stapelüberlauf gebracht hatte, fand ich heraus, was mein spezielles Problem war. Ich hatte meine Hosts-Datei vor langer Zeit bearbeitet, um von meiner Virtualbox aus auf meinen Localhost zugreifen zu können.

Das Entfernen dieses Eintrags löste es für mich ...

Ich hatte meine Hosts-Datei auch für Python Setup für maschinelles Lernen vor 2 Monaten bearbeitet. Anstatt sie zu entfernen, weil ich sie immer noch brauche, verwende ich 127.0.0.1 anstelle von localhost und es hat funktioniert:

mongoose.connect('mongodb://127.0.0.1/testdb')
3
KeitelDOG

Dies war mir eingefallen und ich habe herausgefunden, dass es an einer fehlerhaften Internetverbindung lag. Wenn ich das öffentliche WLAN an meiner Stelle benutze, das verschiedene Websites aus Sicherheitsgründen blockiert, weigert sich Mongo, eine Verbindung herzustellen. Wenn ich jedoch meine eigenen mobilen Daten verwenden würde, kann ich mich mit der Datenbank verbinden.

1
Pritt Balagopal

führen Sie einfach mongod in terminal im Basisordner aus, wenn alles wie die Installation von mongo db und der Client dafür wie mongoose eingerichtet wurde. Führen Sie nach Ausführen des Befehls die Projektdatei aus, an der Sie gerade arbeiten, und der Fehler sollte nicht angezeigt werden.

1
Udit Jain
mongoose.connect('mongodb://localhost:27017/').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});

Stellen Sie einfach eine Verbindung zur localhost Mongoose-Datenbank her und erstellen Sie Ihre eigenen Sammlungen. Vergessen Sie nicht, die Portnummer anzugeben. (Standardeinstellung: 27017)

Laden Sie Mongoose-compass für die MongoDB-Benutzeroberfläche herunter, um die beste Ansicht zu erhalten.

0

Sie können die Fehlerdetails überprüfen, indem Sie diesen Befehl ausführen

Sudo service mongod status

wenn fehler ist so etwas

  • Konnte die Socket-Datei /tmp/mongodb-27017.sock nicht trennen. Unbekannter Fehler
  • Fatal Assertion 40486 bei src/mongo/transport/transport_layer_asio.cpp 670

wenn Sie dies einfach ausführen, wird Ihr Problem behoben

rm /tmp/mongodb-27017.sock

0
Aleem

Ich hatte dieses Problem, als ich bei den örtlichen Starbucks arbeitete, und ich erinnerte mich, dass ich meine Datenbank zum ersten Mal über Mongo Atlas eingerichtet hatte. Ich habe meine IP-Adresse so eingestellt, dass ich auf die Datenbank zugreifen kann. Nachdem ich einige Threads durchgesehen hatte, änderte ich meine IP-Adresse auf Atlas und das Problem ging weg. Hoffe das hilft jemandem.

0
Pedro Nunez

erstellen Sie zunächst einen Ordner über die Befehlszeile mkdir C:\data\db (Dies ist für die Datenbank) Führen Sie dann den Befehl mongod --port 27018 mit einer Eingabeaufforderung (Verwaltungsmodus) aus. Sie können den gewünschten Port als Namen angeben

0
Mrutyunjaya Kar

1) Falls Sie mongodb nicht installiert haben, installieren Sie es.

2) Öffnen Sie ein neues Terminal und geben Sie "mongo" ein. Dies verbindet Sie mit einer MongoDB-Instanz, die auf Ihrem localhost mit dem Standardport 27017 ausgeführt wird:

0
obayral

Mein Fall war etwas anders. Nach dem Neustart meines Systems hatte ich meine IP-Adresse in Mongo während der lokalen Entwicklung nicht auf die Whitelist gesetzt.

Select Network Acess > Add IP Address > Add your current IP Address
0
jarora