Express 項目結構最佳實踐(上)

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

這看起來可能比較複雜,可是不要擔憂,等你讀完這篇文章,你將會徹底明白裏面的每一個部分。這真的很簡單。函數

讓咱們來看看在項目根目錄下的文件和文件的概要說明:測試

  • controllers/ - 定義你應用的路由和其餘的邏輯
  • helpers/ - 能夠被項目各部分所調用的功能函數和代碼
  • middlewares/ - Express 中間件,將要處理在進入路由以前的請求
  • models/ - 表示數據,實現業務邏輯和處理存儲
  • public/ - 包含全部的靜態文件,像圖片、樣式和腳本
  • views/ - 提供模板文件,模板文件將會在你路由中進行渲染和使用
  • tests/ - 測試在其餘文件夾的的代碼
  • app.js - 初始化應用
  • package.json - 你應用所依賴的特定版本的包
相關文章
相關標籤/搜索