在Heroku上运行时,在beforeSave上设置一些Parse.User属性
您能否在beforeSave回调中编辑数据?如果是,如何编辑 查看各种文档,这段代码似乎应该可以工作(使用在Heroku上运行时,在beforeSave上设置一些Parse.User属性,heroku,parse-platform,parse-cloud-code,Heroku,Parse Platform,Parse Cloud Code,您能否在beforeSave回调中编辑数据?如果是,如何编辑 查看各种文档,这段代码似乎应该可以工作(使用“\u User”或Parse.User),我可以看到在用户上保存之前运行和新用户在我的日志中,但密钥aaa仍然为空 我尝试在user.set之后添加user.save(),但仍然没有成功。 有什么想法吗 Parse.Cloud.beforeSave(“\u User”),函数(请求、响应){ log('runbeforesave on a User'); var user=request.
“\u User”
或Parse.User
),我可以看到在用户上保存之前运行和新用户代码>在我的日志中,但密钥aaa
仍然为空
我尝试在user.set
之后添加user.save()
,但仍然没有成功。
有什么想法吗
Parse.Cloud.beforeSave(“\u User”),函数(请求、响应){
log('runbeforesave on a User');
var user=request.object;
if(user.existed()){
回答:success();
}否则{
log('new user!');
user.set('aaa','xxx');
回答:success();
}
});
编辑2015/12/03:可能是关键信息,此代码正在heroku上运行
编辑2015/12/05:这似乎是Heroku/Parse集成的一个bug。调用beforeSave钩子,但似乎不允许编辑请求。对象
编辑2015/12/07:我在CloudCode Express
repo上创建了一个问题,将您的代码更改为使用isNew()
方法:
Parse.Cloud.beforeSave(Parse.User,函数(请求,响应){
log('runbeforesave on a User');
如果(!request.object.isNew()){
回答:success();
}否则{
log('new user!');
request.object.set('aaa','xxx');
回答:success();
}
});
使用Webhook,您需要传回已更改的对象:
成功(目标);
您正在尝试将值设置为本地用户变量。试试这个:request.object.set('aaa','xxx')
我们在代码中使用了相同的user.set()
函数,即使使用局部变量,它也能工作。然而,我们在existed()
方面遇到了一些问题,对于我们的用例,我们可以使用if(!user.get('aaa')){}
。在重构之前,我尝试直接引用request.object
。。不走运…我也有同样的问题,在heroku上运行之前保存。我认为这是Parse-webhook实现中的一个bug,因为它在Parse-Cloud代码中直接实现时确实有效。可能必须将beforeSave放回解析服务器,而不是heroku,直到他们修复它…正如我所说,日志显示新用户代码>因此执行块。。不确定它会给我更多。。。但是thx…这就是全部功能吗?你在日志中看到了什么作为输入和结果?是的。。我看到“在用户上保存之前运行”和&“新用户!”你能把这两行贴在这里吗?以输入和结果2015-12-03T09:39:47.487912+00:00应用程序[web.1]:在用户2015-12-03T09:39:47.487982+00:00应用程序[web.1]上保存之前运行的:新用户!更新文档的时间:)