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
访问服务器日志。