1

我在 Corona 中使用以下代码将表格发布到 parse.com(示例数据)。

message1["x1"] = 1
message1["x2"] = 2
message1["y1"] = 3
message1["y2"] = 4
message1["v"] = 5
params.body = json.encode ( message1 )
network.request( baseUrl .. objectClass, "POST", sendresponse,  params)

以下是我的 beforeSave 函数,以防止它被保存为 x1=1。

Parse.Cloud.beforeSave(Parse.User, function(request, response) {
  if object.equalTo("1", request.params.x1) {
    response.error("x value not valid");
  } else {
    response.success();
  }
});

这是编写此代码的正确方法吗?beforeSave 还会在每个对象帖子上运行还是我必须调用它?非常感谢

4

1 回答 1

2

你很接近......你想要做的是这样的:

Parse.Cloud.beforeSave("testClass", function(request, response) {
  if (request.object.get("x1") === 1) {
    response.error("email is required for signup");
  } else {
    response.success();
  }
});

因此,在 Cloud Code 中,您要保存的对象始终位于“request.object”中。由于它是 Parse.Object 类型的 JavaScript 对象,因此https://parse.com/docs/js/中概述的所有函数都有效(因此是 .get("x1"))。一旦我们获得“x1”属性的值,我们就可以使用标准的 Javascript 评估器来测试相等性(在这种情况下,== 或 === 取决于您的需要)。

另请注意,当涉及到 ClassName 时,“beforeSave”正在寻找一个字符串。Parse.User 是 Parse 用户的 Javascript 对象类的名称。字符串形式的用户类始终是“_User”。

是的,这将在每次 POST/保存时调用。

于 2014-12-13T19:36:07.627 回答