Помощь Couchdb и Дивана - PullRequest
       24

Помощь Couchdb и Дивана

1 голос
/ 24 сентября 2011

Я новичок в Couchdb всего несколько недель назад. Я делаю клон приложения couchdb под названием диван [что и приложение].В течение недели все шло замечательно, но неожиданно сегодня я наткнулся на что-то.

Вот что я имел в виду, когда просматривал приложение Sofa и пытался создать сообщение без title , которое оно запрашивает с помощью иокно предупреждения «Не удалось сохранить документ: база данных не может быть создана, файл уже существует.» , что было странно, если посмотреть на источник, который я обнаружил, который требует (в validate_doc_update.js возвращает пользовательскую ошибку json) что-то вроде в этом формате {"запрещено": сообщение}) с запрещенным ключом

  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, если бы оно было возвращено вышеупомянутой require функцией в validate_doc_update.js. Здесь есть json {"error": "file_exists", "причина": "База данных не может быть создана, файл уже существует."}}

Это значит, что проверка в validation_doc_update.js only выполнить во время обновления документа

, чтобы доказать этот момент Я пытаюсь обновить документ без заголовка , ожидая, что он вернет ошибку, но на удивление документ простополучил спасение

так вот мой вопрос по всем пунктам, о которых я упоминал выше

«validate_doc_update.js» «проверяет» работу только во время обновления документа

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 Ответ

2 голосов
/ 24 сентября 2011

Да, функции validate_doc_update запускаются только при обновлении документов (включая создание и удаление).

Функция, которую вы показываете здесь, разрешит документ без заголовка, если его тип не является «постом».Если бы вы могли включить фактический запрос, который вы пытались, я мог бы подтвердить его.

Наконец, «База данных не может быть создана», потому что вы пытаетесь создать базу данных (вместо этого введите PUT / dbname /)из PUT / dbname / docid, я бы догадался), когда он уже существует. Опять же, если вы включите фактический запрос, я тоже могу это подтвердить.

...