2014-01-27 69 views
1

我目前正在構建一個新的Web應用程序,包括用戶註冊,個人檔案,圖片上傳等。我以前的項目使用MEAN堆棧(MongoDB,ExpressJS,Angular,NodeJS),現在想試用一下couchDB。直接從NodeJS/Angular應用程序向couchDB發送請求?

couchDB免費提供REST-API。我可以將所有邏輯轉移到客戶端,並確保輸入通過couchDBs驗證功能有效。因此,我可以將客戶端的請求直接發送到數據庫,並且我不必在我的expressJS控制器中編寫惱人的東西,如CRUD操作。驗證,驗證和簡單的CRUD操作 - 這一切都是免費的。

有沒有理由不這樣做?然後我會將請求傳遞給我的服務器,然後將它傳遞給couchDB,這幾乎可以消除與mongoDB相比的所有好處。

問候, 米歇爾

回答

2

我覺得你的建議是至少在理論上是如此,你可能想繼續前進,做到這一點,從瀏覽器或許將請求轉發到與像nginx的或節點HTTP反向代理的CouchDB -代理。我相信市場上有支持這種「無應用程序服務器」架構的產品,例如parse.com,它提供了一些社會證明,表明這個想法至少有趣並值得探索。

但是我認爲在某種程度上,您會發現應用程序服務器存在這樣的事情,人們使用它們並在幾乎每個應用程序中爲它們編寫代碼都是有充分理由的。用你的couchdb數據驗證代碼調試問題最多可能會很麻煩。將其與您使用node-inspector和chrome開發人員工具調試程序調試node.js代碼的功能相比較。

couchdb也可能不會提供切實粒度足夠的授權功能。這意味着最終您的應用程序將暴露給惡意用戶,只需使用正確的文檔ID進行PUT操作即可訪問他們未經授權查看或更改的數據。

很少有應用程序很簡單,UI + DB可以處理所有需要的數據轉換和操作。理論上你可以在瀏覽器中編寫這些邏輯的一部分,但在你的複合查詢邏輯和你的數據庫之間建立互聯網會給你的應用增加很多的延遲,使得某些功能變得不可能,特別是如果你必須做一個查詢,獲得一些結果,然後根據每個結果進行輔助查詢。在服務器端應用程序和它的couchdb之間有時可行,但在互聯網上這樣做會受到延遲的影響。

相關問題