我正在为 Parse.com
覆盖 CloudCode
中的 BeforeSave
。
这是我在 logs
中看到的:
Input: {"original":null,"update":{"password":"5428","phone_number":"56858","ACL":{"T1pXElsPPT":{"read":true,"write":true}},"config":"{}","creator":"T1pXElsPPT","name":"quarta prova"}}
Result: Update changed to {"config":"{}","creator":"T1pXElsPPT","name":"quarta prova","password":"5428","phone_number":"56858","ACL":{"T1pXElsPPT":{"read":true,"write":true}}}
只有当用户正在创建一个新
对象时,我才需要检查BeforeSave
,而不是当他更新
一个旧
一个。这是我到目前为止所做的:
Parse.Cloud.beforeSave("tracker", function(request, response) {
var spaces = availableSpace(request.user.id);
if (request.original != undefined && request.original === null) {
if (spaces == 0) {
response.error("No available spaces");
} else if (spaces >= 1) {
response.success();
} else if (spaces < 0) {
response.error("Lookup error");
}
} else {
response.success();
}
});
但似乎 original
不在请求对象中(所以它是未定义的,总是导致 response.success();
)
有没有办法检查 original
或其他方法来检查这是 insert
还是 update
?
最佳答案
您可以使用 Parse.Object.isNew()
Parse.Cloud.beforeSave("tracker", function(request, response) {
var spaces = availableSpace(request.user.id);
if (request.object.isNew()) {
if (spaces === 0) {
response.error("No available spaces");
} else if (spaces >= 1) {
response.success();
} else if (spaces < 0) {
response.error("Lookup error");
}
} else {
response.success();
}
});
关于javascript - Parse.com 在 BeforeSave 中识别更新或插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26481270/