Parse.com JavaScript查询错误处理不起作用

时间:2016-01-13 17:05:17

标签: javascript node.js parse-platform

我正在玩Parse后端和NodeJS,但我现在遇到了问题,我无法弄明白。我收到这样的请求。

app.get("/movie", function (req, res) {
    var Review = Parse.Object.extend("Review");
    var query = new Parse.Query(Review);
    var movie = req.query.movie;

    query.equalTo("movie", movie);
    query.first({
        success: function (movie) {
            console.log("Success");
        },
        error: function (error) {
            console.log("Error: " + error.code + " " + error.message);
        }
});});

这很好但错误处理有点不对。例如,如果我改变了

query.equalTo("movie", movie);

query.equalTo("movie", "xyz");

query.equalTo("abc", "xyz");

我的表中不存在,我仍然获得成功声明。是的,我每次都重新启动服务器。

更新

我使用iOS SDK(Swift)尝试了相同的查询,在这里我进入了错误案例。我总是得到同样的错误,这不应该是,但至少我得到一个错误,而在JS样本中我总是进入成功案例。

2 个答案:

答案 0 :(得分:1)

我相信如果找不到“第一个”对象,query.first()就不会出错。您可以在成功返回时检查(movie == null)。

<强>更新

尝试这样写:

app.get("/movie", function (req, res) {

    var movie = req.query.movie;

    var query = new Parse.Query("Review");
    query.equalTo("movie", movie);

    query.first().then(function (movie) {

        // Success
        console.log("Success");

    }, function (error) {

        // Error
        console.log("Error: " + error.code + " " + error.message);

    });
});

答案 1 :(得分:1)

即使您的表/集合中没有匹配数据,

query.find()也会一直成功 我们来试试吧

query.find().then(function (movies) {
    if(movies.length > 0){
       console.log("success");
    }else{
       console.log("query success but no data found");
    }


}, function (error) {

    // Error
    console.log("Error: " + error.code + " " + error.message);

});