在找到

时间:2017-10-15 06:38:40

标签: javascript mongodb express mongoose

我有那段代码:

app.get("/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})
        }
    })
});

我们的想法是通过用户名在数据库中查找用户名并将其传递给视图并显示它。现在,当我在consol log foundUser时,它显示了我的h1中的整个对象以及

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

当我尝试访问us.username时,它没有显示任何内容,控制台说它未定义。

1 个答案:

答案 0 :(得分:0)

User.find将返回一系列文档。即使您的查询仅匹配单个文档,它仍将是具有一个值的数组。所以foundUser.username将不起作用。 foundUser[0].username应该有用。

如果您使用User.findOne,它将返回单个文档,而不是数组。然后foundUser.username应该按预期工作。