Ich baue eine nodejs App mit expressjs framework. Ich würde gerne fragen, wie verbinden wir uns mit Mönch Mönch? Ich habe diesen Code online gefunden, aber es scheint, dass wir keinen Benutzernamen und kein Passwort angeben müssen. Warum ist das so?
%Vor%Schätze jeden Rat.
Es gibt zwei Methoden, Benutzernamen / Passwort zu übergeben:
%Vor% Es ist nicht sehr gut dokumentiert, aber da monk
mongoskin
verwendet, können Sie hier
Ich möchte eine Alternative zu den obigen Antworten hinzufügen, da keiner für mich funktioniert hat.
So konnte ich mich mit einer mongod --auth
Instanz verbinden:
1. Stellen Sie sicher, dass Sie einen Benutzer erstellen, während Sie bei mongodb als Benutzer mit den entsprechenden Berechtigungen angemeldet sind, um Benutzer in Datenbanken zu erstellen (wie ein Benutzer mit der Rolle userAdminAnyDatabase
). Wenn Sie keinen Benutzer mit dieser Rolle haben, starten Sie mongo mit mongod
ohne --auth
neu und melden Sie sich als Superuser (falls Sie einen haben) oder mit einem einfachen mongo
-Befehl an und machen Sie diesen Benutzer mit den entsprechenden Rechten.
Ich empfehle dringend, hier über mongodb-Rollen nachzulesen: Ссылка
2.Nachdem Sie in Ihrer Datenbankinstanz mit dem entsprechenden Benutzer angemeldet sind, der andere Benutzer erstellen soll, geben Sie use db_name
ein, wobei db_name der Name Ihrer Datenbank ist, für die Sie den Benutzer erstellen möchten.
3.Once innerhalb dieser Datenbank verwenden Sie den Befehl db.createUser wie folgt: db.createUser({user:"your_username", pwd:"your_password", roles:["your_role"]})
Es ist hier dokumentiert: Ссылка
4. Verwenden Sie dann einfach db = monk('USERNAME:PASSWORD@localhost:27017/DATABASE_NAME')
in Ihrem Code.
Nachdem Sie dies getan haben, sollten Sie in der Lage sein, sich bei einer laufenden mongod --auth-Instanz mit einem Benutzer für die bestimmte Datenbank anzumelden, für die Sie diesen Benutzer erstellt haben.
Für alle Neugierigen entwickle ich eine kleine Web-App in Koa . Mit Mönch und Co-Mönch .
In apps.js
:
In /lib/mylib.js
:
Obwohl ich empfehlen würde, eine separate Datei namens db.js zu erstellen und in dieser Datei die Verbindung zu exportieren, ist das sauberer.