2016-03-08 54 views
1

我在一個小型的Couch/NodeJS項目上工作了幾個星期,我需要一些字段驗證(必需,類型...)。我通過在設計文檔中添加validate_doc_update來解決這個問題。CouchDB在需要的字段驗證上返回HTTP 403

經過一番測試後,我意識到我正在接收403個禁止的HTTP代碼,而不是400個錯誤的請求,我認爲在這個用例中更合適。

CouchDB Documentation說,我可以把這些錯誤對象之一:

拋出:禁止錯誤優雅地防止存儲文件。 (403)

拋出:未經授權的錯誤,以防止存儲並允許用戶重新授權。 (401)

關於什麼是管理這種驗證問題的最佳方法的任何想法?

更新

內容的

validate_doc_update

function (newDoc, oldDoc, userCtx){ 

    function require(field, message){ 
     message = message || "Block must have a " + field; 
     if (!newDoc[field]) throw({forbidden : message}); 
    }; 

    if(newDoc.type == "block"){ 
     require("name") 
    } 
} 

我知道擲({禁止:消息})將給予403 ......有什麼辦法來改變這種行爲在CouchDB上還是應該使用express來建立我自己的驗證中間件?

+0

請張貼您的代碼。 – Kerr

回答

1

是的,這實際上是CouchDB的一個丑角。我很驚訝,仍然沒有規定用422(對於無效的文檔比403更合適)做出響應,但是 - 我們做的是添加我們自己的中間件來做正確的事情。

+1

非常感謝@smathy!一旦我獲得聲望,我會盡快回復您的答案=) – carlosmbolanos

+0

不客氣。 – smathy