Javascript json失败-无法读取属性';长度';未定义的-我可以';找不到什么';这是不对的
我正在一个项目中工作,在Node.js、express模块、jade文件、MongoDB Mongoose等等。。 我在实现从数据库到jade页面的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
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;