将MongoDB集合迭代到哈巴狗

时间:2017-02-02 00:01:05

标签: 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"
        }
     }
  },
]
}

快递:

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中渲染它,除非我删除了数据'数组中的对象(需要在那里)。

1 个答案:

答案 0 :(得分:1)

我可以看到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}

希望这能帮到你!