gpt4 book ai didi

javascript - Parse.com query.equalTo错误处理

转载 作者:行者123 更新时间:2023-12-02 15:14:38 25 4
gpt4 key购买 nike

我正在尝试查询 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 存在,则成功函数将按预期工作。如果它不存在,而不是错误函数运行,我会得到一个控制台输出,内容如下:

"Uncaught TypeError: Cannot read property 'get' of undefined"

我正在遵循本指南:https://www.youtube.com/watch?v=2TVmgEJfbno

我有点不明白为什么这行不通。有人有这方面的经验吗?

最佳答案

仅当执行出错时才会调用 find() 方法的错误回调。在 ProductEAN 不存在的情况下,它仍然是成功的查询,但匹配记录为零。这意味着它调用您的成功回调,结果是一个空数组。因此 results[0] 是 undefined ,这解释了控制台错误输出。

您可能想要更改成功回调以验证 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);
}

});

关于javascript - Parse.com query.equalTo错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34559070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com