2016-01-13 26 views
1

我正在玩解析後端和NodeJS,但我現在有一個問題,我無法弄清楚。我有這樣的獲取請求。Parse.com JavaScript查詢錯誤處理不起作用

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樣本中遇到錯誤時總是遇到成功案例。

回答

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); 

    }); 
}); 
+0

我也試過用query.find。同樣的結果。 – PatrickDotStar

+0

請參閱使用新方法編輯。 – BuffMcBigHuge

+0

仍然是相同的結果:( – PatrickDotStar

1

query.find()總是成功即使在你的表中沒有匹配的數據/集 讓我們試一下

​​
+0

感謝您的答覆。我知道這個工程,但這不是在錯誤處理的感覺Parse提供了一些錯誤代碼,如'ObjectNotFound','InvalidQuery'和'InvalidClassName',我可以使用if語句在錯誤情況下檢查這些錯誤,但我不明白,爲什麼我的查詢約束不我的意思是,如果我在我的帖子中設置了這樣的約束,即使這些數據根本不存在,我也不應該進入成功案例,但我每次都會這樣做。 – PatrickDotStar