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);
}
});
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);
});
});
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);
});
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.