【发布时间】:2015-04-06 07:21:53
【问题描述】:
把它缩小到这个:
$.getJSON('/drinks/getColors', function(items) {
colors = items;
});
$.each(colors, function(index2, value2) {
if (value.name == value2.name) {
curColor = value2.color;
}
});
我稍后会使用此信息,因此我将其存储在本地,但有时它是未定义的,有时它很好。是什么让它如此不可靠?
它似乎存在的问题是颜色有时是未定义的。在数据接收完成之前处理数据是否存在时间问题?
^===编辑===^
我会尝试为您提供所有必要的信息,而不仅仅是粘贴我的整个项目。
所以在我的drinks/find 页面的页面加载时,我对我的数据库运行 GET 请求以获取饮料详细信息并填充页面。
$(document).ready(function() {
loadDrink(curDrink);
});
函数从那里获取数据:
$.getJSON(address, function(item) {
#Work with data, update pages, loops, etc
}
通常,但并非总是如此,我会从 Jquery 收到 TypeError: a is undefined 错误,但刷新几次最终会使其正常工作。
这是调用我的数据库的路由:
router.get('/find/details/:name', function (req,res){
var db = req.db;
nameToSearch = req.params.name.toLowerCase();
db.collection('recipes').findOne({name: nameToSearch}, function (err, result) {
res.send(result);
});
});
我不确定问题出在哪里。我的一些查询中有空格(将要修复),但这个错误也发生在单字搜索中,所以我认为这不是问题的原因。
我猜这与试图处理尚未收到的数据的页面有关。但是正在完成的工作也是对$.getJSON 的回调,所以我认为这不是问题。
如果你们发现任何非常感谢的东西,如果需要,我也可以提供更多信息,不确定什么是相关的。
谢谢!
【问题讨论】:
-
你没有发布足够的代码。
-
还有什么帮助?
-
对于初学者来说,涉及一个名为“a”的变量的代码。
-
没有变量a。 A 可能指的是 jquery 创建的可迭代对象。
-
当您从库中收到错误时,唯一要做的就是使用未缩小版本的页面调试您的页面,以便您可以跟踪堆栈并找出在哪里在 your 代码中出现问题。没有一般的答案; jQuery 包含非常少的代码来验证您传递给它的参数,因此有无数种方式可能会出错。
标签: javascript jquery node.js express