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

how to retrieve users full data from mongodb using node js

我的个人资料页面中有一个用户注册器详细信息,但是如何在我的 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
        });
  }

});

});

使用find代替findOne

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

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

首先你需要查询你所有的users。所以你需要用户 User.find 其中 returns 一个数组,而不是 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>