Javascript CouchDB验证阻止删除

Javascript CouchDB验证阻止删除,javascript,validation,couchdb,Javascript,Validation,Couchdb,为沙发编写了验证函数: 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[fie

为沙发编写了验证函数:

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
id


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

解决方案非常类似于沙发:

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"); 
}
}

关键点是检查新文档的
\u已删除的
字段。如果存在,则说明正在删除的文档。这很有趣,但很奇怪-所以,对于更新检查,我必须处理修订更改?但在主要方面,它是有效的。

解决方案实际上是沙发式的:

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"); 
}
}
关键点是检查新文档的
\u已删除的
字段。如果存在,则说明正在删除的文档。这很有趣,但很奇怪-所以,对于更新检查,我必须处理修订更改?但在主要方面,它是有效的