Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 云代码中的查询问题_Javascript_Php_Parse Platform - Fatal编程技术网

Javascript 云代码中的查询问题

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添加一个FB用户,但是因为它没有func来添加用户名和电子邮件,所以我尝试这样做。非常感谢您的帮助

JS

云代码:

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