Parse platform Request.object在afterSave钩子中没有数据
我试图在解析中使用Parse platform Request.object在afterSave钩子中没有数据,parse-platform,Parse Platform,我试图在解析中使用afterSavehook 但是,即使是刚保存的对象的ID的简单打印输出也不会显示在日志中,并且if语句不会传递以允许执行其他方法。有关守则: Parse.Cloud.afterSave(Parse.User, function(request) { Parse.Cloud.useMasterKey(); var user = request.object; console.log('After save for user ID: ', user.id); if
afterSave
hook
但是,即使是刚保存的对象的ID的简单打印输出也不会显示在日志中,并且if
语句不会传递以允许执行其他方法。有关守则:
Parse.Cloud.afterSave(Parse.User, function(request) {
Parse.Cloud.useMasterKey();
var user = request.object;
console.log('After save for user ID: ', user.id);
if (!user.existed() && user.get('isTrainer')) {
// does not enter here
打印出来的日志没有ID,只有我键入的字符串。我还尝试打印出请求对象,但解析日志系统似乎无法打印出对象,这很不幸。它也不会输入if
语句,因为使用get
也不会返回任何信息
有人知道为什么会这样吗
为了完整起见,这里是对象,以便您可以看到它被正确保存:
v31 after_save triggered for _User for user PlVMz2zCfC:
Input: {"object":{"createdAt":"2015-12-24T21:01:01.678Z","email":"yui@bb.bb","firstName":"Pppp","isTrainer":true,"lastName":"Pop","objectId":"PlVMz2zCfC","phone":"(555) 555-5555","trainer":{"__type":"Relation","className":"Trainer"},"updatedAt":"2015-12-24T21:01:01.678Z","username":"yui@bb.bb"}}
Result: Success
由于这是用户类上的afterSave触发器,因此应该使用
request.User
而不是request.object
我发现在开发期间将所有内容输出到控制台有助于调试
Parse.Cloud.afterSave(Parse.User, function(request) {
Parse.Cloud.useMasterKey();
var user = request.user;
console.log("user = " + JSON.stringify(user));
console.log("user.id = " + JSON.stringify(user.id));
console.log("user.existed() = " + JSON.stringify(user.existed()));
console.log("user.get("isTrainer") = " + JSON.stringify(user.get("isTrainer")));
if (!user.existed() && user.get("isTrainer")) {
...
由于这是用户类上的afterSave触发器,因此应该使用
request.User
而不是request.object
我发现在开发期间将所有内容输出到控制台有助于调试
Parse.Cloud.afterSave(Parse.User, function(request) {
Parse.Cloud.useMasterKey();
var user = request.user;
console.log("user = " + JSON.stringify(user));
console.log("user.id = " + JSON.stringify(user.id));
console.log("user.existed() = " + JSON.stringify(user.existed()));
console.log("user.get("isTrainer") = " + JSON.stringify(user.get("isTrainer")));
if (!user.existed() && user.get("isTrainer")) {
...
在那里也添加一个fetch怎么样?添加一个fetch会导致错误
Result:TypeError:Object#没有方法“fetch”
。如果您尝试console.log('save for user ID:'之后,request.Object.ID)?可能您遇到了此错误:在其中添加一个fetch怎么样?添加一个fetch会导致错误Result:TypeError:Object#没有方法“fetch”
。如果尝试console.log('save for user ID:'之后,request.Object.ID)?可能您遇到了此错误:不幸的是,这会产生相同的结果:控制台日志中没有打印ID,并且它不会输入if
语句。请尝试使用console.log(“request.user=“+JSON.stringify(request.user))
如果有任何东西出现,请告诉我。确实如此<代码>request.user={“createdAt”:“2015-12-25T02:34:19.005Z”,“电子邮件”:ff@bb.nn“,”firstName“:”Gggg“,”isTrainer“:”true“,”lastName“:”Ffgg“,”phone“:”(555)555-5555“,”sessionToken“:”xx“,”培训师“:{”类型“:”关系“,”类名“:”培训师“}”,更新日期“:”2015-12-25T02:34:19.005Z“,”用户名“:”ff@bb.nn“,”objectId:“yzQGLpBuC5”}。这是查看对象输出的好方法。为什么get
s和.id
符号不起作用?请参阅我的更新答案,并尝试分别输出每个语句,以帮助跟踪发生的情况。至于为什么get
或id
可能不起作用,可能会有所不同。有时,这可能是由于ACL或Parse在User
类中内置的一些特殊安全预防措施造成的。无论如何,这些都不重要,因为您使用的是主键结果:user={“createdAt”:“2015-12-25T02:49:24.109Z”,“email”:gg@hh.bbt“,”firstName“:”Hhgg“,”isTrainer“:”true“,”lastName“:”Ffff“,”phone“:”(555)555-5555“,”sessionToken“:”8uy3ta6vh1fqwkypga8wtwe“,”培训师“:{”关系“,”类名“:”培训师“},“更新”:“2015-12-25T02:49:24.109Z”,“用户名”:”gg@hh.bbt,“objectId”:“QwX47B0TuC”}user.id=“QwX47B0TuC”user.existed()=真正的user.get(isTrainer)=
奇怪地存在()
返回true
,但这是一个新用户。不幸的是,结果是相同的:控制台日志中没有打印ID,如果语句,它也不会进入if
语句。尝试使用console.log(“request.user=“+JSON.stringify(request.user));
并告诉我是否有任何显示。确实如此!request.user={”createdAt:“2015-12-25T02:34:19.005Z”,“电子邮件”:ff@bb.nn“,”firstName“:”Gggg“,”isTrainer“:”true“,”lastName“:”Ffgg“,”phone“:”(555)555-5555“,”sessionToken“:”xx“,”培训师“:{”类型“:”关系“,”类名“:”培训师“}”,更新日期“:”2015-12-25T02:34:19.005Z“,”用户名“:”ff@bb.nn,“objectId”:“yzQGLpBuC5”}
。这是查看对象输出的好方法。为什么get
和.id
符号不起作用?请查看我的更新答案,并尝试分别输出每个语句以帮助跟踪发生的情况。至于get
或id
为什么不起作用,可能会有所不同。有时可能是由于ACL或ACL解析的一些特殊安全预防措施已内置到User
类中。无论如何,这些都不重要,因为您使用的是主键结果:User={“createdAt”:“2015-12-25T02:49:24.109Z”,“email”:gg@hh.bbt“,”firstName“:”Hhgg“,”isTrainer“:”true“,”lastName“:”Ffff“,”phone“:”(555)555-5555“,”sessionToken“:”8UY3TA6VH1FMQWKYPGA8WTWE,“培训师”:{“类型”:“关系”,“类名”:“培训师”},“更新日期”:“2015-12-25T02:49:24.109Z”,“用户名”:”gg@hh.bbt,“objectId:“QwX47B0TuC”}user.id=“QwX47B0TuC”user.existed()=true user.get(isTrainer)=
奇怪地existed()
返回true
,但这是一个新用户。