0
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);       
    }
    });
2
  • 1
    Not working how? What errors are logged? Commented 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. Commented Dec 14, 2015 at 15:31

2 Answers 2

1

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);       
  });
});
Sign up to request clarification or add additional context in comments.

1 Comment

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.
1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.