Ich arbeite an einer CRUD-Anwendung mit Knoten, Mongo & Mönch. Ich möchte einen Datensatz nach Benutzername suchen und dann aktualisieren. Aber ich bin nicht in der Lage, einen Datensatz zu finden, dieser Code funktioniert nicht:Benutzer mit Namen nicht gefunden mit Monk/Mongo
// GET User Profile
router.get('/userprofile', function(request,response){
var db = request.db;
var userName = request.body.username;
var collection = db.get('usercollection');
collection.findOne({
"username": userName
},{},function(e,user){
response.render('userprofile', {
"user": user
});
});
});
Die „FindOne“ Methode nichts zurückliefert, und das „user“ Objekt endet leer.
Ich habe es versucht und es hat nicht funktioniert. Ich ging zurück und verwendete eine Antwort (send) und es stellt sich heraus, dass mein Benutzername leer ist: 'response.send (request.body.username +" ist der Suchschlüssel ");' gibt eine undefinierte Antwort zurück, obwohl die URL so aussieht eine richtige Abfrage: "http: // localhost: 3000/userprofile? username = fred". Die ursprüngliche Form, die ich verwendet habe, um die Route zu bekommen, ist dies: "form # formEditUser (name =" edituser ", method =" get ", action ="/userprofile ") Eingabe # inputUserName (type =" hidden ", value = user.username, name = "username") button # btnSubmit (type = "submit") Edit' –
Die Art, wie Sie den 'userName' bekommen, ist, wenn die Anfrage Methode ein POST ist, hier machen Sie ein GET so Sie müssen die Eigenschaft 'request.query' verwenden. Mehr Details [hier] (http://expressjs.com/en/api.html#req.query) – chridam