2017-02-02 38 views
1

我試圖將一個MongoDB集合的員工集成到Pug中。我知道它與第一個'數據'對象有關。我無法弄清楚如何渲染數組中的數據。將MongoDB集合迭代到pug

MongoDB的集合:

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

快遞:

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} 

我已經ARO撥弄並得到它與Angular2使用ng-repeat,但我似乎無法得到它在帕格呈現,除非我去掉數組中的'數據'對象(這需要在那裏)。

+0

你能告訴我的'的console.log(employeeResult)'結果呢? –

+0

當然,我得到如下: [{_id:5892b3ae79fb9d023308dce7, 數據: [對象], [對象], [對象], [對象], [對象], [對象] [對象], [對象], [對象], [對象], [對象], [對象], [對象], [對象], [對象], [對象] [對象], [對象], [對象], [對象], [對象], [對象], [對象], [對象], [對象]]}] –

回答

1

雖然我可以看到employeelist[0].data是要遍歷的數組。

變化employeelistemployeelist[0].data

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

更新。替代方法:

由於莫希特建議,如果從路由本身發送,那麼你的原始代碼將工作。

// 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} 

希望這可以幫助你!

+0

謝謝! - 但是我從貓鼬在瀏覽器中顯示以下錯誤: 無法讀取的不確定 –

+0

財產「長度」或許應該EmployeeList的[0]。數據?這可以在路由文件本身中修改以發送所需格式的數據。 –

+0

是的,它應該是'employeelist [0] .data'。我會更新我的答案。而且,是的,如果數據從路由本身以所需格式發送,則OP的原始代碼將工作。 –