Javascript json失败-无法读取属性';长度';未定义的-我可以';找不到什么';这是不对的

Javascript json失败-无法读取属性';长度';未定义的-我可以';找不到什么';这是不对的,javascript,json,node.js,express,pug,Javascript,Json,Node.js,Express,Pug,我正在一个项目中工作,在Node.js、express模块、jade文件、MongoDB Mongoose等等。。 我在实现从数据库到jade页面的json细节时遇到了一个问题 我试图找出这个问题,但没有成功。 我想要有人帮我找到并修复它。 谢谢 这是错误消息: TypeError: /Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/views/index.jade:66 64| div(id="archive-rooms-con

我正在一个项目中工作,在Node.js、express模块、jade文件、MongoDB Mongoose等等。。 我在实现从数据库到jade页面的json细节时遇到了一个问题

我试图找出这个问题,但没有成功。 我想要有人帮我找到并修复它。 谢谢

这是错误消息:

TypeError: /Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/views/index.jade:66
   64|   div(id="archive-rooms-container" class="row panel thumbnail-row")
   65|     h4= 'Musical Projects'
 > 66|     each project, index in projects
   67|           div(class='col-md-3 rowSpace')
   68|               ul(class="room-details")
   69|                   li

Cannot read property 'length' of undefined
   at jade_debug.unshift.lineno (eval at <anonymous> (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:174:8), <anonymous>:618:31)
   at eval (eval at <anonymous> (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:174:8), <anonymous>:815:4)
   at eval (eval at <anonymous> (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:174:8), <anonymous>:955:22)
   at res (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:175:38)
   at Object.exports.render (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:300:10)
   at Object.exports.renderFile (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:336:18)
   at View.exports.renderFile [as engine] (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/jade/lib/jade.js:321:21)
   at View.render (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/express/lib/view.js:93:8)
   at EventEmitter.app.render (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/express/lib/application.js:530:10)
   at ServerResponse.res.render (/Users/itzhak/Desktop/Development/Porvivo/AWSporvivo/node_modules/express/lib/response.js:933:7)
Js代码(在客户端):

应用程序代码:(node.js)

非常感谢


伊扎克。

我不知道杰德,但问题似乎来自数据


项目似乎是未定义的,因此解析器无法读取它(我猜它试图在循环遍历其子项之前获取其长度,并抛出一个错误)

所以首先要做的是检查从数据库收到的数据。

我发现了问题, 翡翠是在服务器上渲染的,而我试图从客户端的JS获取翡翠的详细信息。 我通过直接从服务器渲染细节来修复它,因为它更适合我的需要,但还有另一个选项,只向客户端发送一个空模板jade,并通过JS将细节插入html


希望有一天这能帮助别人:)

我正在检查。我会告诉你这件事是否会解决。感谢项目未定义
each project, index in projects
      div(class='col-md-3 rowSpace')
          ul(class="room-details")
              li
                  a(href="/projects/" + project.sessionId id=project.sessionId)
                      h3(style='margin:0 0 3px')= project.projectName
              - var playerNames = [];
              - for(var playerIndex in project.players) playerNames.push(room.players[playerIndex].name);
              li
                  for playerName in playerNames
                      a(href="../" + playerName)= playerName
          a(href="/projects/" + project.sessionId id=project.sessionId): img(src=project.img class="img-responsive")
function loadProjects() {
    $.getJSON('/projects/info', function( data ) {
        console.log(JSON.stringify(data));
    });
}
$( document ).ready(function() {
    loadProjects();
    setInterval(loadProjects, 10000);
});
var express = require('express'),
router = express.Router(),
Project = require('../schemas/project'),
projects = [];

Project.find().lean().exec(function(err, items) {
        if (err) {
            console.log('* ERROR!!! : ' + err);
        } else {
            projects = items;
            console.log('* SUCCESS : ' + JSON.stringify(projects));
        }
    });

    router.get('/info', function(req, res) {
        res.json({projects: projects});
    });

module.exports = router;