Parse.com 更新用户 Cloud Code 出现错误 206:无法修改用户 [英] Parse.com update user Cloud Code giving error 206: cannot modify user

查看:23
本文介绍了Parse.com 更新用户 Cloud Code 出现错误 206:无法修改用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 Parse Server 上编写一个简单的 Cloud Code 函数来更新用户的参数.我的功能如下:

I am trying to write a simple Cloud Code function on Parse Server that updates a user's paramater. My function is as follows:

Parse.Cloud.define("updateUser", function(request, response) {
    var query = new Parse.Query("User");
    query.equalTo("username", request.params.username);
    var type = request.params.type;
    query.first({
        success: function (user) {
            user.set("userType", type);
            user.save(null, {
                success: function (object) {
                    response.success("SUCCESS");
                }, error: function (object, error) {
                    response.error(error);
                }
            });
        }, error: function (error) {
            response.error(error);
        }
    });
});

这就是我从 Express Node.js 应用程序调用服务器端函数的方式:

And this is how I call the function server-side from an Express Node.js app:

Parse.Cloud.run("updateUser", { useMasterKey: true, username: req.body.username, type: req.body.type }, {
    success: function(final) {
        res.send({ res: "SUCCESS" });
    }, error: function(error) {
        res.send({ res: error });
    }
});

第一个查询返回一个用户,但随后的保存抛出206:无法修改用户"错误.

The first query returns a user, but the subsequent save throws a "206: cannot modify user" error.

此功能在我们之前的平台上运行良好,但现在在 Parse Server 上出现问题.

This function worked great on our previous platform, but now is causing issues on Parse Server.

非常感谢任何帮助.

推荐答案

useMasterKey 应该发送到您的云代码方法的 user.save() 并且在您的代码中您从 nodeJS 应用程序发送了 useMasterKey.

the useMasterKey should be send to the user.save() of your cloud code method and in your code you sent the useMasterKey from your nodeJS app.

所以最后你的代码应该如下所示:

so at the end your code should look like the following:

Parse.Cloud.define("updateUser", function(request, response) {
var query = new Parse.Query("User");
query.equalTo("username", request.params.username);
var type = request.params.type;
query.first({
    success: function (user) {
        user.set("userType", type);
        user.save({useMasterKey : true}, {
            success: function (object) {
                response.success("SUCCESS");
            }, error: function (object, error) {
                response.error(error);
            }
        });
    }, error: function (error) {
        response.error(error);
    }
});

});

我还会根据最佳实践更改我的代码以使用 Promise 和箭头函数.

I would also change my code to use Promises and arrow functions according to the best practices.

希望有帮助.

这篇关于Parse.com 更新用户 Cloud Code 出现错误 206:无法修改用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆