我正在玩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样本中我总是进入成功案例。
答案 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);
});