解析服务器云代码保存对象
Parse Server Cloud Code Save Object
我正试图查询一个对象,在返回的整数上加1,然后使用解析服务器云代码将此对象保存回我的mLabs数据库。
我可以成功地查询并向我想要的对象添加1,但我不知道如何成功地将其保存回数据库。我已经尝试了许多解决方案,所有这些都导致解析服务器"请求超时"
Parse.Cloud.define("addRating", function(request, response) {
var currentRatingQuery = new Parse.Query("StudentNotes");
currentRatingQuery.equalTo("objectId", "Y4bBzvsHb1");
currentRatingQuery.select("noteRating");
currentRatingQuery.find({
useMasterKey: true,
success: function(results) {
//var noteRating = results.get("noteRating");
//noteRating += 1;
results = Number(results);
results += 1;
console.log("NOTE RATINGGGGG: " + results);
console.log("TYPE OFFFFFFF: " + typeof results);
results.set('institution', "TEST INSTITUTION");
results.save(null, {
useMasterKey: true
});
console.log("SAVE SUCCESS", results);
response.success("rating updated successfully.", results);
},
error: function(error) {
response.error("failed to add 1 to parse cloud code rating. Error: " + error); //THIS GETS CALLED
}
});
});
上面的代码成功地查询了数据库,但没有保存回值。它会导致解析服务器"请求超时"。
我的问题与语法有关——由于解析服务器云代码与parse.com云代码非常相似,因此严重缺乏语法。以下是检索对象并将对象保存回的工作代码。
Parse.Cloud.define('addNoteRating', function(request, response) {
var SaveObject = Parse.Object.extend("StudentNotes");
var saveObject = new Parse.Query(SaveObject);
saveObject.equalTo("objectId", request.params.objectId);
saveObject.first({
useMasterKey: true,
success: function(Objects) {
Objects.save(null, {
useMasterKey: true,
success: function(object) {
object.increment("noteRating");
object.save();
console.log("Cloud Code: User note rating has increased by 1.", object);
response.success('Cloud Code: User note rating has increased by 1.');
}
});
}
});
});
没有响应可能会导致超时。尝试在api失败时添加响应,看看发生了什么。
顺便说一句,如果你增量成功时响应什么,保存完成时响应什么。
Parse.Cloud.define('addNoteRating', function(request, response) {
var SaveObject = Parse.Object.extend("StudentNotes");
var saveObject = new Parse.Query(SaveObject);
saveObject.equalTo("objectId", request.params.objectId);
saveObject.first({
useMasterKey: true,
//this function will get at most one object
success: function(object) {
if(object){
object.increment("noteRating");
object.save(null,{
//do not use master key?
success: function(note){
//u should wait the non-blocking call success and finish
console.log("Cloud Code: User note rating has increased by 1.", object);
response.success('Cloud Code: User note rating has increased by 1.');
}, error: response.error
});
}else{
response.error('this student note is not exist');
}
}, error: response.error
});
});
如果这个对象存在,你可以把你的代码重写为
Parse.Cloud.define('addNoteRating', function(request, response) {
var SaveObject = Parse.Object.extend("StudentNotes");
var studentNote = new SaveObject();
studentNote.id = request.params.objectId;
studentNote.increment("noteRating");
//student.save(null,{useMasterKey:true}).then(
studentNote.save().then(
function(note){
console.log("Cloud Code: User note rating has increased by 1.", object);
response.success('Cloud Code: User note rating has increased by 1.');
}, response.error
)
});
相关文章:
- 解析服务器云代码保存对象
- Parse.com在循环中保存对象,只保存最后一个对象
- 在 parse.com 中保存对象后计划后台作业
- 用两种方式保存对象,有什么区别
- 在ember.js中保存对象时出错:'对象X没有方法'保存''
- 如何在 javascript 中保存对象变量的状态
- C# 保存对象列表与保存对象(来自 JSON)
- 使用 HTML 5 保存对象
- Parse.com 云代码保存( )错误:“未捕获 尝试使用指向新的未保存对象的指针保存对象
- javascript 或 jQuery 是否有任何技术来创建最终用户可以即时收缩或扩展的保存对象
- Backbone.js-保存对象时未触发错误事件
- Parse.com Cloud Code beforeSave()错误:"未捕获尝试用指向新的未保存对象的指针
- 如何在AngularJS中保存对象的JSON索引位置,而不是对象本身
- 如何保存对象实例(和选项)以便将来应用方法
- 从对象中的函数中获取保存对象的变量的名称
- 在保存对象数组时解析空对象
- 无法正确调用保存对象
- 在angularjs中保存对象的响应
- 如何保存对象以供以后使用?通过JSON或其他方式发送并存储在DB中,然后恢复
- localStorage保存对象,但不能读取其内容