Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将MongoDB集合迭代到pug_Node.js_Mongodb_Express_Mongoose_Pug - Fatal编程技术网

Node.js 将MongoDB集合迭代到pug

Node.js 将MongoDB集合迭代到pug,node.js,mongodb,express,mongoose,pug,Node.js,Mongodb,Express,Mongoose,Pug,我试图将MongoDB的员工集合显示到帕格中。我知道这与第一个“数据”对象有关。我不知道如何在数组中呈现数据 MongoDB系列: { "data":[ { "active":true, "userName":"example", "employeeDetails":{ "personalDetails":{ "firstName":"Dennis", "lastName":"Glo

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

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}
Express:

{  
"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}
哈巴狗:

{  
"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渲染它。

正如我所看到的
employeelist[0]。数据是你想要迭代的数组

employeelist
更改为
employeelist[0]。数据

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}

希望这对你有帮助

你能告诉我console.log(employeeResult)的结果吗?当然,我得到了以下结果:[{id:5892b3ae79fb9d023308dce7,数据:[[对象],[对象],[对象],[对象],[对象],[对象],[对象],[对象],[对象],[对象],[对象],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object],[Object]}谢谢但是,我从Mongoose在浏览器中看到以下错误:无法读取undefinedperhaps的属性“length”,它应该是employeelist[0]。数据?这可以在路由文件本身中修改,以按所需格式发送数据。是,它应该是
employeelist[0]。数据
。我会更新我的答案。是的,如果数据是从路由本身以所需的格式发送的,那么OP的原始代码就可以工作了。非常感谢,这就解决了它!头发我可以帮你。如果我的答案对你有用,请投我一票。