Javascript 云代码中的查询问题
你知道为什么这样不行吗?它会返回成功消息,但实际上不会更新任何内容 我正在使用Parse添加一个FB用户,但是因为它没有func来添加用户名和电子邮件,所以我尝试这样做。非常感谢您的帮助 JS 云代码:Javascript 云代码中的查询问题,javascript,php,parse-platform,Javascript,Php,Parse Platform,你知道为什么这样不行吗?它会返回成功消息,但实际上不会更新任何内容 我正在使用Parse添加一个FB用户,但是因为它没有func来添加用户名和电子邮件,所以我尝试这样做。非常感谢您的帮助 JS 云代码: Parse.Cloud.define("test", function (request, response) { Parse.Cloud.useMasterKey(); var uid; var query = new Parse.Query("_User");
Parse.Cloud.define("test", function (request, response) {
Parse.Cloud.useMasterKey();
var uid;
var query = new Parse.Query("_User");
query.count({
success: function (results) {
uid = parseInt(results);
},
error: function () {
response.error("UID lookup failed");
}
});
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", request.params.objectId);
query.first({
success: function (object) {
object.set("username", request.params.name);
object.set("email", request.params.email);
object.set("uid", uid);
var acl = new Parse.ACL();
acl.setPublicWriteAccess(false);
acl.setPublicReadAccess(false);
object.setACL(acl);
object.save();
response.success("Success Message");
},
error: function (error) {
response.error("Error Message");
}
});
});
感谢您对响应调用success()
或error()
将停止当时正在进行的任何操作,包括用户的save()
此外,您似乎希望在用户中记录设置ACL时的用户计数。获取计数还必须与其他操作一起序列化。(另外,请注意,count仅在用户计数从未下降的情况下作为id“uid”才有效。解析对象的id作为id有什么问题?)
大多数解析函数都返回承诺,使用它们是避免尝试嵌套回调时发疯的唯一方法。所以
Parse.Cloud.define("test", function(request, response) {
Parse.Cloud.useMasterKey();
var uid;
var query = new Parse.Query(Parse.User);
query.count().then(function(count) {
uid = count;
return query.get(request.params.objectId);
}).then(function(object) {
object.set("username", request.params.name);
object.set("email", request.params.email);
object.set("uid", uid);
var acl = new Parse.ACL();
acl.setPublicWriteAccess(false);
acl.setPublicReadAccess(false);
object.setACL(acl);
return object.save();
}).then(function (object) {
response.success(object);
},function(error) {
response.error("Error Message");
});
});
谢谢Danh,这说明success()/Error()将结束函数。而且我想这个ID可能是他们的,我刚从MySQL来,所以还是习惯了。谢谢
Parse.Cloud.define("test", function(request, response) {
Parse.Cloud.useMasterKey();
var uid;
var query = new Parse.Query(Parse.User);
query.count().then(function(count) {
uid = count;
return query.get(request.params.objectId);
}).then(function(object) {
object.set("username", request.params.name);
object.set("email", request.params.email);
object.set("uid", uid);
var acl = new Parse.ACL();
acl.setPublicWriteAccess(false);
acl.setPublicReadAccess(false);
object.setACL(acl);
return object.save();
}).then(function (object) {
response.success(object);
},function(error) {
response.error("Error Message");
});
});