解析:使用云代码

时间:2015-09-30 18:27:43

标签: javascript parse-platform cloud-code

我第一次使用解析作为后端。在我的业务中,用户必须在注册页面中选择2个角色:“Role1”和“Role2”。如果我理解文档,则应该只读取对“_Role”类的访问权限,因此在用户尝试注册时将用户添加到角色的最佳方法是通过云代码。

我的想法(不确定它的最佳做法)是首先向该用户添加一个名为“role”的列,因此用户对象将如下所示:

{
    username: "John Doe",
    email: "john@doe.com",
    role: "Role1",
    createdAt : ...
    ...
}

第二,使用云代码将此用户添加到角色“Role1”。

这是云代码:

Parse.Cloud.afterSave(Parse.User, function(request, response) {
var user = request.user;
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.Role);
// user.role is undefined here !!!
query.equalTo("name", user.role);
query.first({ success: function(role) {
    role.relation("users").add(user);
    role.save();
} ,error: function(error){
    console.log('error');
    console.log(error); 
}});

});

正如您在此代码中看到的,我需要使用查询通过其名称获取用户角色。该角色应该存储在用户对象中,这不是此代码中的情况。

问题:如何访问云代码中的角色字段?

谢谢。

1 个答案:

答案 0 :(得分:0)

要获取role字段,我们必须使用user.get('role')而不是user.role

注意:如果您使用的是1.6.0 sdk代码将失败,请考虑将“.parse.project”文件中的值更改为1.5.0,等待修复此错误。