【发布时间】:2015-12-08 22:02:09
【问题描述】:
你能在 beforeSave 回调中编辑数据吗?如果可以,如何编辑?
查看各种文档,似乎这段代码应该可以工作(使用"_User" 或Parse.User),我可以在我的日志中看到Ran beforeSave on a User 和new user!,但密钥aaa 仍然是空的。
我尝试在user.set 之后添加user.save(),但仍然没有成功。
有什么想法吗?
Parse.Cloud.beforeSave("_User", function(request, response) {
console.log('Ran beforeSave on a User');
var user = request.object;
if(user.existed()) {
response.success();
} else {
console.log('new user!');
user.set('aaa', 'xxx');
response.success();
}
});
EDIT 2015/12/03:可能是关键信息,此代码在 heroku 上运行。 http://blog.parse.com/announcements/introducing-heroku-parse/
EDIT 2015/12/05:这似乎是 Heroku / Parse 集成的错误。 beforeSave 钩子被调用,但似乎不允许您编辑 request.object..
编辑 2015/12/07:我在 CloudCode-Express repo https://github.com/ParsePlatform/CloudCode-Express/issues/6 上创建了一个问题
【问题讨论】:
-
您正在尝试将值设置为本地用户变量。试试这个:
request.object.set('aaa','xxx'); -
我们在代码中使用了相同的
user.set()函数,即使使用局部变量,它也能正常工作。但是,我们在使用existed()时遇到了一些问题,对于我们的用例,我们可以改用if (!user.get('aaa')) {}。 -
我尝试在重构之前直接引用
request.object.. 不走运... -
我遇到了同样的问题,也在heroku上运行beforeSave。我认为这是 Parse webhook 实现中的一个错误,因为当它直接在 Parse Cloud Code 中实现时它确实有效。可能必须将 beforeSave 放回 Parse 服务器而不是 heroku,直到他们修复它...
标签: heroku parse-platform parse-cloud-code