Javascript 节点js+;express+;jade迭代数组

Javascript 节点js+;express+;jade迭代数组,javascript,node.js,express,Javascript,Node.js,Express,我要做的是在jade布局中迭代数组。布局文件为lessons.jade: each lesson in myLessons ul.nav.pull-center: li.dropdown.nav.text-center .btn.btn-default.dropdown-toggle.btn-lg.btn-block(data-toggle="dropdown" aria-expanded="false")= lesson.day

我要做的是在jade布局中迭代数组。布局文件为lessons.jade:

   each lesson in myLessons
            ul.nav.pull-center: li.dropdown.nav.text-center
              .btn.btn-default.dropdown-toggle.btn-lg.btn-block(data-toggle="dropdown" aria-expanded="false")= lesson.day
              ul.dropdown-menu.col-xs-12
                each lessonName in myLessons
                  li: a(href='/lessons/details')= lessonName.name
                  li.divider
我的视图控制器文件是lessons.js:

var renderLessonPage = function (req, res, responseBody) {
    var message;
    if (!(responseBody)) {
    message = "Lessons API Error!";
  } else {
    if (responseBody.length < 0) {
      message = "No lessons found!";
    }
  }
  res.render('lessons', {
    title: 'Lesson page',
    pageHeader: {
      title: 'Just a page'
    },
    myLessons: responseBody,
    message: message
  });
};



module.exports.lessons = function(req, res) {
  var requestOptions, path;
  path = '/api/locations/' + req.params.locationid + '/lessons/';
  requestOptions = {
    url: apiOptions.server + path,
    method: "GET",
    json: {}
  };
  request(
      requestOptions,
      function (err, response, body) {
        renderLessonPage(req, res , body );
      }
  );

};
如果启动Chrome并浏览到API访问的位置,我会看到以下json结果:

{
  "location": {
    "lessons": [
      {
        "_id": "56d5d947bdb5c3d92ace848c",
        "name": "Henk",
        "startTime": "13:00",
        "endTime": "14:00",
        "day": "Tuesday",
        "__v": 0
      },
      {
        "_id": "56d5d9dfea5cbcf42a20f87e",
        "name": "skaaak",
        "startTime": "12:00",
        "endTime": "18:00",
        "day": "Monday",
        "__v": 0
      }
    ]
  }
}
如果我通过
-console.log
在我的jade布局模板中启用
console.log
,并在
myLessons
中获取课程,控制台中会输出完全相同的内容。但是我不能在我的jade布局中使用数组中的值

我只得到一个下拉菜单而不是两个,文本没有填充在下拉按钮上,下拉菜单中有两个空项


我尝试了很多方法,但大多数都导致
未定义
或属性无法读取。

当您发送请求结果时

response = {
    location: {
      lessons: location.lessons
     // id: req.params.locationid
    }
};
  sendJsonResponse(res, 200, response);
响应是对象,而不是数组。所以当renderLessonPage函数render(选项myLessons:responseBody)是对象时

您可以按如下方式替换代码:

response = {
    location: {
      lessons: location.lessons
     // id: req.params.locationid
    }
};
sendJsonResponse(res, 200, response.location.lessons);

在您的jade视图中,
myLessons
指的是什么?从示例对象中,访问“课程”列表的形式应为
response.location.lessons
。谢谢!感谢您的帮助,我现在清楚地知道我做错了什么。感谢您在代码方面帮助我,也感谢您澄清了我做错了什么!现在开始工作了!
response = {
    location: {
      lessons: location.lessons
     // id: req.params.locationid
    }
};
sendJsonResponse(res, 200, response.location.lessons);