commonjs mit mongodb verbinden - Druckversion +- Javascript-forum (https://javascript-forum.de) +-- Forum: Entwicklung (https://javascript-forum.de/forumdisplay.php?fid=4) +--- Forum: Javascript (https://javascript-forum.de/forumdisplay.php?fid=6) +--- Thema: commonjs mit mongodb verbinden (/showthread.php?tid=2707) |
commonjs mit mongodb verbinden - Poolgate - 30.12.2023 Hallo Liebe Community, nun ich lerne gerade JavaScript und möchte gerne eine mongodb-Datenbank mit meinen Projekt verbinden. Ich habe Docker verwendet um eine MongoDB zu erstellen. Weiterhin wurde VS Code und Atlas verlinkt und ich kann manuell auf die Datenbank zufgreifen und die Collections "characters" sehen. Hier ist der Code, der nicht funktioniert: Code: const MongoClient = require('mongodb').MongoClient; Wenn ich mein Script unter nodejs aufführe, erwarte ich eigentlich ein console.log() ausdruck, was nicht kommt. Mein Terminal befindet sich in eine Endlosschleife. Wenn ich das Objekt "MongoClient.connect()" eine Variable zuweise und mir mit console.log() anzeigen lasse, erhalte ich ein Promise mit dem Attribut "pending". Es wäre nett, wenn mir einer hier helfen würde. viele Grüße Poolgate RE: commonjs mit mongodb verbinden - Sempervivum - 30.12.2023 Hallo Poolgate und willkommen im Forum! Hier: https://stackoverflow.com/questions/75373419/mongoclient-connect-is-not-responding hat jemand das selbe Problem und die Erklärung, warum es nicht funktioniert, ist diese: Zitat:Callback Support has been removed from v5 hence the console.log statements in callback function are not getting printedLösung indem Du, wie in der ersten Antwort beschrieben, mit async - await arbeitest. Offenbar ist hier die Doku, ich habe in diese gesehen: https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html nicht aktuell. RE: commonjs mit mongodb verbinden - Poolgate - 30.12.2023 Ich habe es gefunden: Code: const MongoClient = require('mongodb').MongoClient; (30.12.2023, 18:26)Sempervivum schrieb: Hallo Poolgate und willkommen im Forum! Hi Sempervivum, Danke dir und ich hab vorher im Github und in die Doku reingesehen. Nun ich muss augrund der asynchronität mein Result mit ein Promise abfangen. Dies habe ich dann mal gemacht mit .then() Methode. Es funktioniert. Viele Grüße Poolgate RE: commonjs mit mongodb verbinden - Sempervivum - 30.12.2023 Oh, das hat sich jetzt überkreuzt. Selbstverständlich kannst Du auch mit "then" arbeiten aber ich würde in Betracht ziehen, besser async - await zu verwenden, weil mit mit "then" die Strukturen immer verschachtelter werden können, wenn es komplexer wird. Ich habe selbst die Erfahrung mit Sqlite gemacht: Mit "then" begonnen und dabei geblieben, aber ich bereue es jetzt, denn durch die Verschachtelungen ist der Code ganz schön unübersichtlich geworden. RE: commonjs mit mongodb verbinden - Poolgate - 30.12.2023 Würdest du die db-verbindung async halten oder dich auf die darauffolgende CRUD Befehle auf die JSON-Collections konzentrieren ? Ich bin gerade am Überlegen, warum ich hier ein Promise starten muss, denn die Datenbank fährt einmal mit dem nodejs server hoch und bleibt solange on bis der Server heruntergefahren wird. Ich probiere auf jeden Fall async/await nachher aus. Mischen möchte ich nicht. RE: commonjs mit mongodb verbinden - Sempervivum - 30.12.2023 Ganz genau weiß ich es nicht, aber ich hatte bei Sqlite den Eindruck, dass so ziemlich alles asynchron und mit Promises arbeitet. Scheint bei Mongo-DB ähnlich zu sein. Aber Datenbank-Sachen sind nicht meine Stärke, vielleicht meldet sich da noch jemand mit erweiterten Kenntnissen. RE: commonjs mit mongodb verbinden - Poolgate - 01.01.2024 Ich habe nochmals nachgelesen und es auch in der Doku gefunden. Mongo ist wie mysql aufgebaut und benötigt immer ein Promise. Wenn du willst, kann ich meine Findings posten |