javascript - CouchDB 验证可防止 DELETE

标签 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[field]) || isNullOrWhiteSpace(newDoc[field])) throw({forbidden : message});
  };
 require("title");
 require("content"); 
}

一切都很好,只是我现在无法删除文档 - 验证不允许我这样做,说文档必须包含 titleid

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

最佳答案

解决方案确实像沙发一样:

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 字段。如果存在,记录删除过程。这很有趣,但很奇怪——那么,为了进行更新检查,我必须处理修订版本更改吗?但在主要方面,它是有效的。

关于javascript - CouchDB 验证可防止 DELETE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34221859/

相关文章:

javascript - AngularUI DatePicker - JavaScript - 获取 SQL 日期格式时休息一天

javascript - 铁路由器: Meteor JS

json - 从带有多个对象的 JSON 文件批量加载 MongoDB

java - 将 couchDB 与 vert.x 结合使用

python - 在 Django 模型表单中验证 end_date 是否大于 start_date

javascript - 使用 CouchDB 和 nano.js 进行回调和返回

javascript - 不确定如何从子组件更新父状态

javascript - VUEX,当$store.state为null时怎么办

c# - 是否可以在 C# 中的 gridview 上进行验证?

java - JButton 在 setEnabled(true) 后不会立即获得焦点