我有该代码:

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})
        }
    })
});


这个想法是通过用户名在数据库中找到用户名,并将其传递给视图并显示它。现在当我控制台日志foundUser时,它显示了我的h1中的整个对象

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


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

最佳答案

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

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

关于javascript - 找到后在 View 上表达 Mongoose 显示数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46752394/

10-11 11:39