MongoDB - Fehler: ungültiges schema, erwartet mongodb
Ich bin neu in der Gebäude-Anwendung mit einem mittleren Stack, den ich versuche zu bauen, ein Echtzeit-chat-app, hier ist meine server-Seite :
console.log("Server running...!");
var mongo=require('mongodb').MongoClient;
var client=require('socket.io').listen(8080).sockets;
mongo.connect('localhost:27017/db/chat',function(err,db){
if(err) throw err;
client.on('connection',function(socket){
console.log('someone has connected !');
//waiting for input
socket.on('input',function(data){
console.log(data);
});
});
});
Ich bin sicher, dass ich erstellt eine Datenbank namens chat mit mongodb, auch mongo wartet auf Verbindung. Aber wenn ich den server mit Knoten server.js tritt ein Fehler auf :
Server running...!
C:\Users\azus\Desktop\Psirt\codemaster\node_modules\ mongodb\lib\url_parser.js:20
throw new Error('invalid schema, expected mongodb');
^
Error: invalid schema, expected mongodb
at module.exports (C:\Users\azus\Desktop\Psirt\code-master\node_modules\mong
odb\lib\url_parser.js:20:11)
at connect (C:\Users\azus\Desktop\Psirt\code-master\node_modules\mongodb\lib
\mongo_client.js:125:16)
at Function.MongoClient.connect (C:\Users\azus\Desktop\Psirt\code-master\nod
e_modules\mongodb\lib\mongo_client.js:109:3)
at Object.<anonymous> (C:\Users\azus\Desktop\Psirt\code-master\server.js:6:8
)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
C:\Users\azus\Desktop\Psirt\code-master>
Ich war blockiert in dieser phase für Wochen, könnte jemand helfen zu diesem?
Dank.
- Möglicherweise werden Sie nach einem alten tutorial oder eine Dokumentation. Dass verwendet werden, um zu arbeiten, aber es hat sich geändert, dass mongodb://
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil Sie die Verbindungszeichenfolge in einem ungeeigneten format.
Sind Sie mit
localhost:27017/db/chat
während es sein solltemongodb://localhost:27017/db/chat
Muster für die Verbindungszeichenfolge ist
mongodb://<HOSTNAME>:<PORT>/<DBNAME>
Artikel Referenz: https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html#mongoclient-connect
mongdb://
eine url wielocalhost
wird nicht funktionieren.Ich nur hatte dieses Problem auch, und es war, weil ich das Protokoll falsch:
Dem Protokoll als falsch, kann auch diesen Fehler verursachen. Es sollte wie folgt sein:
Manchmal Fehler könnte mit den Anführungszeichen auch Umgebungsvariablen. Entfernen Sie Sie einmal versuchen. Helfen könnte.
Fehler sein könnte mit :
Richtige Befehl:
docker-compose
Umgebungsvariablen. Ich brauchte es nicht, eingewickelt in irgendwelche Anführungszeichen (einfach oder doppelt). Dieser arbeitete für mich.MONGODB_URI=mongodb://mongo:27017/
Versuchen Sie dieses, es funktioniert:
Gerade herausgefunden, das gleiche problem. Verdammt windows speichern-Zitate in der Umgebung.
Wenn du also windows nutzen und schrieb auf diese Weise
SET MONGO_URL="mongodb://localhost:27017/{name of your db}"
Es ist nicht richtig.Richtige Weg ist
SET MONGO_URL=mongodb://localhost:27017/{name of your db}
ohne Anführungszeichen.Außerdem entdeckte ich, dass Sie schreiben muss-Protokoll genau - mongodb.
Es ist der code, was ist, überprüfen Sie die Protokoll-Datei url_parser.js
Scheint offensichtlich zu sein, aber Sie werden auch auf diesen Fehler stoßen, wenn Sie pass ungültige Werte im Allgemeinen um die mongo-client, z.B.
undefined
. Lief in dieser, wenn ich war das verweisen auf die falsche Taste auf einem config-Objekt.Ändern Inhalt dieser Zeile aus
zu
Dann können Sie eine Verbindung MongoDB-Datenbank erfolgreich.
den funktionierenden code würde wie folgt Aussehen
vergessen Sie nicht, ersetzen Sie
username
,password
&URL