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);
}
});
-
1Not working how? What errors are logged?Wain– Wain2015-12-14 11:51:10 +00:00Commented Dec 14, 2015 at 11:51
-
do you really have the 'pointer' ie ref to the user in CC.req.parms OR do you have serialized ie strings of the user object in your req parms? if typeof Profile.user is 'pointer to class user' IMO the query.equalTo may be ambiguous.Robert Rowntree– Robert Rowntree2015-12-14 15:31:20 +00:00Commented Dec 14, 2015 at 15:31
Add a comment
|
2 Answers
This is because you need to wait for the asynchronous save operation to finish before calling res.success function:
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);
});
});
1 Comment
Amit
thats work perfectly! i spend whole day to fix this. now i am thinking why i did not asked earlier to save my time. thanks man.
Since you have a Pointer you need to use .include to retrieve this data with the Profile data. Also make sure to not call the res.success right after the async .save() call
Your code should look like this.
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);
});
});