UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] zuerst eine Verbindung [MongoNetworkError
Ich versuchte, führen Sie den folgenden Befehl ein:
node index.js
Jedoch bekomme ich die folgende aus meinem terminal:
success connection to port 3000
(node:16767) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError
: connect ECONNREFUSED 127.0.0.1:27017]
at Pool.<anonymous> (/Users/hatchery/Documents/nodejs/fxexpress/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/server.js:503:11
)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/Users/hatchery/Documents/nodejs/fxexpress/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:326:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/Users/hatchery/Documents/nodejs/fxexpress/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:245:50)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
(node:16767) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:16767) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Ich bin nicht sicher, warum bin ich immer diese Fehlermeldung. Könnte jemand Rat, was zu tun ist?
InformationsquelleAutor ApplePie | 2018-04-24
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, welches system Sie auf, aber versuchen Sie dies ausführen wenn Sie auf Linux:
oder für macOS:
und laufen lassen in einem neuen terminal und dann versuchen den server läuft wieder
Wenn Sie mit mongoDB.Atlas gehen Sie zu Netzwerk-Zugriffs und legen Whitelist-Eintrag: 0.0.0.0/0.
Re-führen Sie Ihren Befehl.
Während die obige Lösung mag funktionieren, ist es besser zu verstehen, wie es zu Debuggen und was der Fehler sagt.
Du hast
UnhandledPromiseRejectionWarning
, weil Sie in Ihrem code müssen Sie nicht sein Umgang mit der Verheißung Ablehnung Fall, wo Sie Verbindung zu MongoDB.Neben der Knoten-server ist fehlgeschlagen Verbindung zum mongodb. Dies könnte sein, weil mehrere Gründe. Einen einfachen Fall wie bereits erwähnt von @Sayegh, der server selbst wird nicht ausgeführt. Könnte auch andere Gründen wie falschen port etc, server nicht akzeptiert eingehende verbindungen etc.
Debuggen. Erste Schritt ist, um herauszufinden, ob der Prozess läuft oder nicht. Ein einfacher Weg wäre, um diesen Befehl ausführen
ps aux | grep mongo
die Liste alle Prozesse von allen Benutzern mit "mongo" als text.Wenn dies wahr war, und immer noch keine Verbindung, suchen Anschluss. Wenn immer noch keine Verbindung, prüfen Sie, ob der server nimmt eine eingehende Verbindung und nehmen es von dort.
Bevor Sie starten Sie Ihren NodeJS-Befehl, stellen Sie sicher, dass die richtigen Verzeichnisse mit den entsprechenden Berechtigungen:
Zuerst habe ich versucht Skitty-Lösung, und es hat nicht funktioniert für mich, aber ich halte die Lösung in meinem code, und dann änderte ich
app.listen(process.env.PORT || 3000);
- und es funktionierte für mich.