我一直在使用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();
});
然而,对我而言,它并不想工作。
答案 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
});