Parse.com设置类默认属性

时间:2016-03-17 00:46:56

标签: node.js parse-platform

我一直在使用Parse Cloud Code,但我没有为我的类设置默认值。现在我这样做:

Parse.Cloud.beforeSave('MyClass',function(request, response){



 //The description should only have 200 characters
 if(request.object.get('description')){

   var des = request.object.get('description');

   if(des.length>200){
     request.object.set("description", des.substring(0, 197) + "...");
   }

 }


 //let's make a default value
 if(typeof request.object.get('active') === 'undefined'){
    request.object.set('active',false);
 }

 response.success();
});

当我将此功能上传到Cloud Code,并尝试从仪表板创建新对象时,它将没有默认值active = false。

我不知道发生了什么。有人在此之前实现了这一目标吗?

我的代码与Parse文档中的代码非常相似。他们说这可以这样做:

Parse.Cloud.beforeSave("Review", function(request, response) {
  var comment = request.object.get("comment");
  if (comment.length > 140) {
    // Truncate and add a ...
    request.object.set("comment", comment.substring(0, 137) + "...");
  }
  response.success();
});

然而,对我而言,它并不想工作。

1 个答案:

答案 0 :(得分:1)

Wohoo!我做到了!

文档中没有任何地方说如果你想这样做,你必须在response.success()中返回你编辑的对象。

解决方案:

Parse.Cloud.beforeSave('MyClass',function(request, response){



 //The description should only have 200 characters
 if(request.object.get('description')){

   var des = request.object.get('description');

   if(des.length>200){
     request.object.set("description", des.substring(0, 197) + "...");
   }

 }


 //let's make a default value
 if(typeof request.object.get('active') === 'undefined'){
    request.object.set('active',false);
 }

 response.success(request.object); //this is the line that changes
});