解析服务器云代码更新用户

时间:2017-02-16 17:47:27

标签: javascript parse-platform cloud

我正在尝试更新解析用户字段,并且函数在其中间停止:

Parse.Cloud.define("modifyAdminStatus", function(request, response) {

var userQuery = new Parse.Query(Parse.User);
var isAdmin = request.params.adminStatus;
console.log("isAdmin:" + isAdmin);
userQuery.equalTo("username", request.params.username);
userQuery.find({ useMasterKey: true,
    success: function(user) {
        console.log(user.length);
        console.log("Got User")
        console.log(user);
        user.set("isAdmin", isAdmin);
        console.log("Set Status");
        user.save(null, {useMasterKey: true,
            success: function(user) {
                response.success();
            },
            error: function(error) {
                response.error(error.message);
            }
        });
    },
    error: function(error) {
        response.error(error.message);
    }
});
});

当我运行代码时,我没有得到任何语法错误:

1
Got User
[ ParseUser { _objCount: 2, className: '_User', id: '2vigcitsl6' } ]

在我的控制台中。但是,在我尝试设置管理员状态后,似乎停止了代码。我尝试使用useMasterKey运行它,但是没有做任何事情,所以也许我错过了某些东西以及useMasterKey应该去哪里?

2 个答案:

答案 0 :(得分:1)

答案是:

query.find({
... code here
});

使用query.first(或从数组中选择一个对象)返回一个数组,而不是获取一个对象,并允许您在其上设置内容。

答案 1 :(得分:0)

当您尝试保存用户时,解析需要两个参数。第一个应该是包含任何更改的对象,第二个应该是保存选项。

因此,在您的情况下,只需将保存更改为user.save (null, {useMasterKey:true, success...})

即可

如果权限允许,现在你拥有它的方式将在Parse.User上创建一个名为useMasterKey的列。