Node 和 Express 沒有嚴格的文件和目錄結構。反而你能夠用你本身喜歡的方式(項目目錄結構)創建你本身的 web 應用。css
然而,隨着你的應用發展到必定的大小和複雜時,事情可能就會變得使人困惑了。你的代碼太亂了。隨着你團隊的成長,在原來代碼基礎上繼續工做將變得很困難。每當代碼合併時,你都要和衝突進行「鬥爭」。添加新的特性和不斷地處理新的狀況的話,須要改變應用的結構。並且,有如此多不一樣的方法來組織你的文件你和代碼,而且在這些方法中很難選擇出最適合你的。git
你想要在這個文件結構中,不一樣的文件和目錄負責不一樣的任務。你想要你的項目可以很容易的進行多人合做,而且他們工做合併代碼時要儘量少的衝突。你想要保持你的代碼乾淨整潔。你想要你的文件結構可以容許你很容易地爲項目添加新的特性。web
這個是能夠實現的。咱們也有一樣的問題,而且咱們有一種方法,來組織你的應用代碼,這種方法能夠改善和修復不少上面提到的問題。json
咱們的結構將基於 Model-View-Controller (MVC)設計模式。這個設計模式能夠很好的將你應用分離成不一樣的部分,不一樣的部分能夠承擔起不一樣的責任,而且可讓你的代碼維護性更好。讓咱們來看看如何有效地在 Express web 應用中如何實現。咱們不會討論 MVC 的優勢,取而代之的是聚焦到咱們如何將 MVC 模式適當地應用在 Express 框架上,而且咱們也能夠看到一些其餘的最好的實踐。咱們在各類各樣的應用和各類大小的應用在大小團隊都用過上面提到的這種模式進行開發,結果都一直很好。設計模式
例子app
讓咱們來看一下以下的例子。在這個應用中,用戶能夠登陸、註冊以及評論。下面就是這個應用的文件和目錄結構。框架
project/ controllers/ comments.js index.js users.js helpers/ dates.js middlewares/ auth.js users.js models/ comment.js user.js public/ libs/ css/ img/ views/ comments/ comment.jade users/ index.jade tests/ controllers/ models/ comment.js middlewares/ integration/ ui/ .gitignore app.js package.json
這看起來可能比較複雜,可是不要擔憂,等你讀完這篇文章,你將會徹底明白裏面的每一個部分。這真的很簡單。函數
讓咱們來看看在項目根目錄下的文件和文件的概要說明:測試