Parse platform 在beforeSave中更改用户密码时Parse.com失败

Parse platform 在beforeSave中更改用户密码时Parse.com失败,parse-platform,Parse Platform,为了集成测试的目的,我正在尝试将某些测试用户的密码重置为已知状态。但是, user.set("password", "testpassword"); 导致保存请求失败,原因是: 错误域=解析代码=141“操作无法完成。(解析错误141)。” 以下是相关的beforeSave代码: Parse.Cloud.beforeSave(Parse.User, function(request, response) { var user = request.object; Parse.

为了集成测试的目的,我正在尝试将某些测试用户的密码重置为已知状态。但是,

user.set("password", "testpassword");
导致保存请求失败,原因是:

错误域=解析代码=141“操作无法完成。(解析错误141)。”

以下是相关的beforeSave代码:

Parse.Cloud.beforeSave(Parse.User, function(request, response) {

    var user = request.object;

    Parse.Cloud.useMasterKey();

    if (user.get("username").substring(0, 4) === "test") {
        console.log("overwriting password for test user.");
        user.set("password", "testpassword");
    }

    response.success();
});

关于代码141的完整写作,请查看我的其他帖子:

但在这种情况下,我猜您只是以解析不允许的方式访问字段,我看到您已经在使用主密钥,因此ACL不应该阻止您,但请尝试使用保留方法访问用户名和设置密码:

if (user.getUsername().substring(0, 4) === "test") {
        console.log("overwriting password for test user.");
        user.setPassword("testpassword");
 }
如果response.success发生在错误的点上,尽管代码看起来很好,但要用承诺说明异步:

user.save({
    password: "testpassword"
  }).then(function(savedUser) {
    // The save was successful.
    response.success(savedUser.getUsername() + "now has a password of 'testpassword'");
  }, function(error) {
    // The save failed.  Error is an instance of Parse.Error.
    response.error(user.getUsername() + " saving failed with an error | code: " + error.code + " | message: " + error.message);
  });

141表示云代码中有错误,你检查过你的服务器日志吗?@timothyvarts所有这些代码都是云代码,所以,是的。没有什么比我上面所说的更重要的了。我指的是141错误,是您在进行保存/注册的客户端中遇到的错误,还是服务器日志中的错误?您可以使用命令行中的
parse log
访问服务器日志。