Couchdb和沙发帮助

时间:2011-09-24 07:02:06

标签: couchdb couchapp couchdb-futon

我刚接触 Couchdb 几周前我git克隆了名为沙发 [what and app]的couchdb应用程序。这一周过得很好但突然间我今天偶然发现了什么。

这就是我的意思  当我浏览沙发应用程序并尝试创建没有标题的帖子时  它提示并提示框“无法保存文档:无法创建数据库,文件已存在。”这很奇怪,因为查看源代码我发现需要(在< strong> validate_doc_update.js 返回其自定义json错误)格式为{“forbidden”:message}),禁止为关键

  v.forbidden = function(message) {
      throw({forbidden : message})
  };

   v.require = function() {
        for (var i=0; i < arguments.length; i++) {
          var field = arguments[i];
          message = "The '"+field+"' field is required.";
          if (typeof newDoc[field] == "undefined") v.forbidden(message);
        };
      }; 

在validate_doc_update.js

if (newDoc.type == 'post') {
    if (!v.isAuthor()) {
      v.unauthorized("Only authors may edit posts.");
    }
    v.require("created_at", "author", "body", "format", "title");

检查json返回的响应状态是否与json不同,如果它已经被validate_doc_update.js中的上述 require 函数返回 这是json {“error”:“file_exists”,“reason”:“无法创建数据库,文件已存在。”}

这可以认为validation_doc_update.js中的验证仅在更新文档期间执行

要证明这一点我尝试更新文档没有标题,期望它会返回错误,但令人惊讶的是文档刚刚保存

所以这是我关于上面提到的所有要点的问题

validate_doc_update.js“validate”是否仅在文档更新期间起作用

if YES 
   then 
      how can I manage to succeed in updating a post without the error [Weird bypassing the Validation Completely] . +  How can execute validation on create of a document
if NO
   then 
     What is  the Error {"error":"file_exists","reason":"The database could not be created, the file already exists."} that is prevent a document to be saved  

任何人都可以分享一下这里列出的所有问题

1 个答案:

答案 0 :(得分:2)

是的,validate_doc_update函数仅在更新文档时运行(包括创建和删除)。

您在此处显示的功能将允许没有标题的文档,只要其类型不是“发布”。如果您可以包含您尝试的实际请求,我可以确认。

最后,“”无法创建数据库“是因为你正在尝试创建数据库(通过执行PUT / dbname /而不是PUT / dbname / docid,我猜),当它已经存在时。如果您要包含实际请求,我也可以确认。