Parse.Cloud.define("updateProfile", function(req, res){
var Profile = Parse.Object.extend("Profile");
var query = new Parse.Query(Profile);
query.equalTo("user", req.user);
query.find({
success: function(profile) {
console.log(profile[0]);
profile[0].set("fullName", req.params.fullName);
profile.save();
res.success("Save successfully");
},
error: function(error) {
console.log('updateProfile:Error: ' + error.message);
res.error(error.message);
}
});
这是因为在调用res.success
函数之前,需要等待异步save
操作完成:
Parse.Cloud.define("updateProfile", function(req, res){
var query = new Parse.Query(Profile);
query.equalTo("user", req.user);
query.find().then( function(profile) {
console.log(profile[0]);
var myProfile = new Parse.Object("Profile");
myProfile.id = profile[0].id;
myProfile.set("fullName", req.params.fullName);
return myProfile.save();
}).then(function() {
res.success("Save successfully");
}, function(error) {
console.log('updateProfile:Error: ' + error.message);
res.error(error.message);
});
});
由于您有一个Pointer,因此需要使用.include来检索该数据和Profile数据。还要确保不要在async.save()调用之后立即调用res.success
您的代码应该是这样的。
Parse.Cloud.define("updateProfile", function(req, res){
var query = new Parse.Query(Profile);
query.include("user");
query.equalTo("user", req.user);
query.find().then( function(profile) {
console.log(profile[0]);
var myProfile = new Parse.Object("Profile");
myProfile.id = profile[0].id;
myProfile.set("fullName", req.params.fullName);
return myProfile.save();
}).then(function() {
res.success("Save successfully");
}, function(error) {
console.log('updateProfile:Error: ' + error.message);
res.error(error.message);
});
});