我试图查询Parse.com数据库以查看某个字段是否可用。然后我会根据变量是否存在于数据库中来执行某些操作。
这是完整的制作功能:
function getProduct() {
var Products = Parse.Object.extend("Products");
ProductEAN = 76130347394081;
output = "";
var query = new Parse.Query(Products);
query.equalTo("EANBarcode", ProductEAN );
query.find({
success: function(results) {
var no = results[0].get("EANBarcode");
var title = results[0].get("Name");
output += "[" + no + "] " + title;
console.log( "Output is: " + output );
},
error: function(error) {
alert(error.message);
}
});
}
如果存在ProductEAN,则成功功能按预期工作。如果它不存在,而不是运行错误函数,我得到一个控制台输出,说明如下:
"未捕获的TypeError:无法读取属性' get'未定义"
我正在遵循本指南:https://www.youtube.com/watch?v=2TVmgEJfbno
我有点不知道为什么这不起作用。有没有人有这方面的经验?
答案 0 :(得分:2)
只有在执行中出现错误时才会调用find()方法的错误回调。在ProductEAN不存在的情况下,它仍然是成功的查询,但匹配记录为零。这意味着它调用您的成功回调,结果为空数组。因此结果[0]未定义,这解释了控制台错误输出。
您可能希望更改成功回调以验证results.length并做出适当的决定。像这样:
query.find({
success: function(results) {
if(results.length > 0){
var no = results[0].get("EANBarcode");
var title = results[0].get("Name");
output += "[" + no + "] " + title;
console.log( "Output is: " + output );
}
else{
console.log('No matching records');
}
},
error: function(error) {
alert(error.message);
}
});