2017-10-15 3 views
1
trouver

J'ai ce code:données d'affichage express mangouste sur vue après

app.get("https://stackoverflow.com/users/:username", function(req,res){ 
var data = req.params.username; 
User.find({'username' : new RegExp(data, 'i')}, function(err, foundUser){ 
     console.log(foundUser); 
     if(err){ 
      console.log(err); 
      res.redirect("/") 
     }else{ 
      res.render("users/show", {us: foundUser}) 
     } 
    }) 
}); 

L'idée est de trouver le nom d'utilisateur dans la base de données par nom d'utilisateur et le transmettre à la vue et l'afficher. Maintenant, quand je Consol log foundUser il montre tout l'objet dans mon h1 et aussi

<div class="container"> 
    User profile 
    <h1><%=us%></h1> 
    </div> 

Lorsque je tente de us.username accéder ne montre rien et console dit son non défini.

Répondre

0

User.find retournera un tableau de documents. Même si votre requête ne correspond qu'à un seul document, il s'agira toujours d'un tableau avec une seule valeur. Donc, foundUser.username ne fonctionnera pas. foundUser[0].username devrait fonctionner.

Si vous utilisez User.findOne, il retournera un seul document, pas dans un tableau. Alors foundUser.username devrait fonctionner comme prévu.

+1

Cela fonctionne. Merci beaucoup – rafalos