xyb*_*rek 2 node.js parse-platform parse-server
我们现在使用 parse-server 面临的最大问题之一是重复。尽管我们已经实现了 Parse 云代码来防止此类事件通过beforeSave,afterSave同时添加了外部中间件以在保存之前检查现有对象,但我们仍然面临着重复,特别是在并发操作上。
这是我们防止特定类重复的代码:
Parse.Cloud.beforeSave("Category", function(request, response) {
var newCategory = request.object;
var name = newCategory.get("name");
var query = new Parse.Query("Category");
query.equalTo("name", name);
query.first({
success: function(results) {
if(results) {
if (!request.object.isNew()) { // allow updates
response.success();
} else {
response.error({errorCode:400,errorMsg:"Category already exist"});
}
} else {
response.success();
}
},
error: function(error) {
response.success();
}
});
});
Parse.Cloud.afterSave("Category", function(request) {
var query = new Parse.Query("Category");
query.equalTo("name", request.object.get("name"));
query.ascending("createdAt");
query.find({
success:function(results) {
if (results && results.length > 1) {
for(var i = (results.length - 1); i > 0 ; i--) {
results[i].destroy();
}
}
else {
// No duplicates
}
},
error:function(error) {
}
});
});
Run Code Online (Sandbox Code Playgroud)
上面的代码能够防止一些重复,但大多数仍然通过,例如:
防止与 Parse 服务器重复的“最终方法”是什么?
| 归档时间: |
|
| 查看次数: |
478 次 |
| 最近记录: |