如何使用节点js从mongodb检索用户的完整数据

时间:2017-09-30 11:53:28

标签: html node.js mongodb express mongoose-schema

我在个人资料页面中有一个用户电阻器详细信息但是如何在我的html配置文件页面中获取所有用户的注册表详细信息?

这是我的一个用户注册详细信息从mongodb数据库获取代码

app.get(' / profile',function(req,res){

  User.findOne(function(err,user){
    if (err)
            return done(err);

        // check to see if theres already a user with that email
        if (user) {
          console.log("THIS : " + user.country);
          res.render('profile.ejs', {
          user: user
        });
  }

});

});

2 个答案:

答案 0 :(得分:1)

首先,您需要查询所有users。因此,您需要使用User.find来返回数组,而不是User.findOne

app.get('/profile', function(req, res) {
  User.find({}, function(err, Users){
    if (err)
        return done(err);

    if (Users) {
      console.log("Users count : " + user.length);
      res.render('profile.ejs', {
        usersArray: Users
      });
    }
  });
});

然后你需要设置你的profile.ejs以显示所有对象,你需要一个循环。

<h3>My users IDs are: </h3>
<ul>
  <% if (typeof usersArray !== 'undefined' && usersArray.length > 0) {%>
    <%for (var i = 0; i < usersArray.length; i++) { %>
      <li>ID: <%= usersArray[i]._id %></li>
    <%}%>
  <% } %>
</ul>

答案 1 :(得分:0)

使用find代替findOne

findOne将返回与查询匹配的第一个结果(在您的情况下,没有查询,因此用户模型的第一个结果)

User.find({}, function(err,users){
   if (err & !users) {  ...  } // error
   // loop over users array
});

https://mongodb.github.io/node-mongodb-native/api-generated/collection.html#find

https://mongodb.github.io/node-mongodb-native/api-generated/collection.html#findOne