2012-06-25 23 views
1

我正在用CouchDB作爲數據庫在express.js框架上構建一個Node.js應用程序。我正在利用CouchDB的會話api來維護會話狀態,以及用於不同數據段的各種數據庫。CouchDB響應失敗的所有方式是什麼?

基本上,我的應用程序代碼向Couch發出請求,然後如果發生錯誤(使用Node),我可以通過記錄錯誤並重定向到404頁面或類似的東西來適當地作出響應。但是,如果我得到一個CouchDB錯誤,Node不會認爲它是一個錯誤,它會考慮這些數據。現在,只要CouchDB的只能返回該格式與我完全罰款:

{ 
    "error": "illegal_database_name", 
    "reason": "Only lowercase characters (a-z), digits (0-9), and any of the characters _, $, (,), +, -, and/are allowed. Must begin with a letter." 
} 

一個JSON文檔具有兩個屬性,錯誤和原因。沒關係,我可以解析它並返回相應的消息;實際上非常優雅。

但是!是我可以從CouchDB期望的所有東西,還是有另一種方式Couch可能會失敗,這將不會產生具有這兩個字段(屬性)的JSON文檔?

+0

爲什麼不像以前的答案一樣使用nano?甚至可能閱讀源代碼? :)相關代碼行https://github.com/dscape/nano/blob/master/nano.js#L280 – dscape

+0

我可能。通讀一些源代碼,看起來不錯!現在閱讀有關Web應用程序安全性的書籍。真的很有趣的東西。儘管如此,我認爲我已經掌握了一些。納米從安全角度來看如何? – Costa

回答

1

dscape依賴回覆代碼的信息是正確的,在大多數情況下,您將得到一個對象errorreason。批量文件錯誤是我能想到的唯一地方,這些都不是真的。如果只有一個文檔失敗,那麼您仍然會得到200,但是您會在與失敗的文檔相對應的數組元素中獲得error/reason。有關詳情,請參閱the docs

相關問題