Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 无法使用CloudCode在Parse.com上创建角色_Javascript_Parse Platform_Role - Fatal编程技术网

Javascript 无法使用CloudCode在Parse.com上创建角色

Javascript 无法使用CloudCode在Parse.com上创建角色,javascript,parse-platform,role,Javascript,Parse Platform,Role,我想使用云代码函数在Parse.com应用程序中创建角色对象。 我尝试过的代码是: Parse.Cloud.define("addRole",function(request,response) { var publicReadACL = new Parse.ACL(); publicReadACL.setPublicReadAccess(true); var user=Parse.User.current(); var baserolename=request.params.o

我想使用云代码函数在Parse.com应用程序中创建角色对象。 我尝试过的代码是:

Parse.Cloud.define("addRole",function(request,response) {
  var publicReadACL = new Parse.ACL();
  publicReadACL.setPublicReadAccess(true);
  var user=Parse.User.current();
  var baserolename=request.params.organisation;
  var roleType=request.params.roleType;
  var roleName=baserolename+"_"+roleType;
  Parse.Cloud.useMasterKey();
  var role = new Parse.Role(roleName,publicReadACL);
  var occupants=role.getUsers();
  occupants.add(user);  
  role.save(role).then (function(role) {
      response.success(role.toJSON());
  },
  function(error) {
            response.error(error);
  });
});

运行此函数不会创建角色,并给出
{“code”:105}
-无进一步错误消息的响应。105的意思似乎是“无效的密钥名”,但我不确定哪个密钥无效或者为什么无效。

我有一个稍微修改过的版本可以使用。以下是我刚刚测试过的Typescript版本:

Parse.Cloud.define('addRole', (req: Parse.Cloud.FunctionRequest, res: Parse.Cloud.FunctionResponse) => {

    let publicReadACL = new Parse.ACL();
    publicReadACL.setPublicReadAccess(true);

    let user = req.user;

    let baseRoleName: string = req.params.organisation;
    let roleType: string = req.params.roleType;
    let roleName: string = `${baseRoleName}_${roleType}`;

    Parse.Cloud.useMasterKey();

    let role = new Parse.Role(roleName, publicReadACL);

    let occupants = role.getUsers();
    occupants.add(user);

    role.save()
        .then((role: Parse.Role) => {
            res.success(role.toJSON())
        }, res.error);

});
主要区别:

  • 如何获得用户。(这没关系。我测试了你获取当前用户的版本,效果也不错)
  • 如何保存角色
以下是已编译的Javascript版本:

Parse.Cloud.define('addRole', function (req, res) {
    var publicReadACL = new Parse.ACL();
    publicReadACL.setPublicReadAccess(true);
    var user = req.user;
    var baseRoleName = req.params.organisation;
    var roleType = req.params.roleType;
    var roleName = baseRoleName + "_" + roleType;
    Parse.Cloud.useMasterKey();
    var role = new Parse.Role(roleName, publicReadACL);
    var occupants = role.getUsers();
    occupants.add(user);
    role.save()
        .then(function (role) {
        res.success(role.toJSON());
    }, res.error);
});

谢谢我对此非常着迷,这只是因为我把参数放在了
save
中。老实说,我最糟糕的噩梦就是整天都在使用Javascript。这里也是如此。Typescript只保存了一整类小错误,这些小错误可能会给以后的调试带来很大的麻烦。