node.js - 将 MongoDB 集合迭代为 pug

标签 node.js mongodb express mongoose pug

我正在尝试将 MongoDB 员工集合显示到 Pug 中。我知道它与第一个“数据”对象有关。我不知道如何呈现数组中的数据。

MongoDB 集合:

{  
"data":[  
  {  
     "active":true,
     "userName":"example",
     "employeeDetails":{  
        "personalDetails":{  
           "firstName":"Dennis",
           "lastName":"Glover",
           "emailAddress":"example@example.com"
        }
     }
  },
  {
     "active": false,
     "userName": example2,
     "employeeDetails": {
        "personalDetails": {
           "firstName": "Ben",
           "lastName": "Dover",
           "emailAddress": "example2@example.com"
        }
     }
  },
]
}

express :

MongoClient.connect(url, function(err, db) {
    if (err) {
        console.log('Unable to connect to the Server', err);
    } else {
        console.log('Connection established to', url);

        var employeecollection = db.collection('employees');

        // Find all employees
        employeecollection.find({}).toArray(function(err, employeeResult) {
            if (err) {
                res.send(err);
            } else if (employeeResult.length) {
                res.render('employeelist', {
                    'employeelist': employeeResult,
                });
            } else {
                res.send('No documents found');
            }
            db.close();
        });
    };

});

巴哥犬:

table
each employee in employeelist
    tr#employee_list_item    
      td #{employee.userName}

我已经摆弄过使用 ng-repeat 让它与 Angular2 一起工作,但是我似乎无法让它在 Pug 中渲染,除非我删除数组中的“数据”对象(它需要在那里)。

最佳答案

据我所知,employeelist[0].data 是您想要迭代的数组。

employeelist更改为employeelist[0].data

table 
each employee in employeelist[0].data
    tr#employee_list_item
        td #{employee.userName}

更新。替代方法:

正如 Mohit 所建议的,如果您从路由本身发送,那么您的原始代码将起作用。

    // Find all employees
    employeecollection.find({}).toArray(function(err, employeeResult) {
        if (err) {
            res.send(err);
        } else if (employeeResult.length) {
            res.render('employeelist', {
                'employeelist': employeeResult[0].data,
            });
        } else {
            res.send('No documents found');
        }
        db.close();
    });

那么,在你看来: 哈巴狗

table
each employee in employeelist
    tr#employee_list_item    
      td #{employee.userName}

希望这对您有帮助!

关于node.js - 将 MongoDB 集合迭代为 pug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41992107/

相关文章:

javascript - Express 和 Mongoose - 无法更新对象

node.js - 无法读取未定义的属性 'getPayload'

node.js - 无法使用 NodeJS 从 CentOS 连接到 MongoDB Atlas

node.js - Sails.js 是从商店中清除的 session

node.js - 使用 MongoDB 的可扩展投票系统

node.js - nodejs ExpressJs BackboneJs Pushstate

node.js - 如何在 npm 脚本中获取包版本和日期?

javascript - 如何在服务器上手动取消 XMLHttpRequest 文件上传(流)

node.js - 使用 multer 上传文件时遇到问题

javascript - 无法在node js中使用post请求