CouchDB验证可防止DELETE

时间:2015-12-11 10:56:07

标签: javascript validation couchdb

为沙发写了验证函数:

isinstanceof

一切都很好,除了我现在无法删除文档 - 验证不允许我这样做,说该文档必须包含function(newDoc, oldDoc, userCtx) { function isNullOrWhiteSpace(str){ return str === null || str.match(/^\s*$/) !== null; } function require(field, message) { message = message || "Document must have a " + field; if ((!newDoc[field]) || isNullOrWhiteSpace(newDoc[field])) throw({forbidden : message}); }; require("title"); require("content"); } title

如何检测现在正在进行的操作?

1 个答案:

答案 0 :(得分:3)

解决方案真的像沙发一样:

function(newDoc, oldDoc, userCtx) { 
function isNullOrWhiteSpace(str){ return str === null || str.match(/^\s*$/) !== null; }
function require(field, message) {
    message = message || "Document must have a " + field;
    if ((!newDoc[field]) || isNullOrWhiteSpace(newDoc[field])) throw({forbidden : message});
  };

if(!newDoc._deleted){
 require("title");
 require("content"); 
}
}

关键点是检查_deleted字段的新文档。如果存在,请记录删除的方式。这很有趣,但很奇怪 - 所以,对于更新检查,我必须处理修订版更改?但在主要方面,它有效。