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
,但这是一个新用户。