Ich erhalte immer einen Fehler beim Versuch, eine Sammlung auf einem Mongodb abzufragen, mit dem ich in meiner Datei app.js
erfolgreich Verbindung hergestellt habe.Mongodb-Authentifizierung mit Nodejs und Mönch
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('mongodb://USERNAME:[email protected]:27017/test_db');
var app = express();
// Make our db accessible to our router
app.use(function(req,res,next){
req.db = db;
next();
});
Es verbindet und dann in meinem Router-Datei:
/* users.js*/
router.post('/login', function(req, res, next) {
var params = req.body;
var userid = params.userid;
var pw = params.password
var db = req.db;
var userdb = db.get('users');
userdb.findOne({'userid' : userid}, function(e,user) {
if (e) {
console.log("error reading user doc ->");
console.log(e);
return;
} else {
....
}
});
});
Ich erhalte die folgende Fehlermeldung nach der Sammlung Abfrage:
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
Die Formatierung Mönch (URL, {Benutzername, Passwort}) funktionierte nicht. Das Problem war URI Codierung das Passwort für Sonderzeichen zu ermöglichen, wenn Sie das Objekt übergeben müssen {uri_decode_auth: true} – dancook808