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);
}
});
答案 0 :(得分:1)
这是因为在调用save
函数之前需要等待异步res.success
操作完成:
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 :(得分:1)
由于你有一个指针,你需要使用.include来检索配置文件数据的数据。还要确保在异步.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);
});
});