7、より良いプロジェクトのディレクトリ構造

1.上記のCRUDの例では、我々はすべてのルートとコントローラは、コードの成長を続ける当社の量になるまで、これは明らかに不合理である、でindex.jsで書かれています。したがって、我々は良いプロジェクト構造を構築する必要があります

 まず、ルートディレクトリにアプリケーションフォルダを作成し、ディレクトリが配置されますindex.js

 appフォルダでは、ディレクトリコントローラコントローラ、ルーティングディレクトリのルートを作成します

 

 

 

 

2.独立して機能するためには、ルートは、物事のルーティングのための唯一の責任があるミドルウェア機能とモジュールを担当して、我々は我々が記述したコードを分離する必要があります

 インターフェイス機能によって、我々は一時的にプロジェクトは、ホームユーザーに分かれています

 

 

 

3.家庭用モジュール

 コントローラ> home.js

クラスHomeCtl {
  インデックス(CTX){
    ctx.body = '<のH1>これはホームである</ H1>'
  }
}

module.exportsは = 新しい HomeCtl()

  路線> home.js

constのルータは=( 'KOA-ルータ'を必要
constのルータ = 新しいルーター()
CONST {索引} =( '../コントローラ/ホーム'を必要とします

router.get( '/' インデックス)

module.exportsは =ルータ

 

4.ユーザモジュール

  コントローラ> users.js

constのデシベル= [
  { "名前": "zhanghao" }
]

クラスUSERCTL {
  // ユーザーのリストが取得
  {(CTX)を見つけます
    ctx.body = デシベル
  }

  // ユーザが増加
  {(CTX)を作成
    ctx.verifyParams({
      名前:{タイプ: 'string'は、必要に応じ:}、
      年齢:{タイプ: '番号'、必要な:}
    })
    db.push(ctx.request.body)
    ctx.body = ctx.request.body
  }

  // 特定のユーザ取得
  findById(CTX){
     IF(ctx.params.id。1 * <0 ){
      CTX。スロー(404、「ユーザーが小さすぎると、見つかりません」
    }
    ctx.body = DB [ctx.params.id * 1 ]
  }

  // ユーザの変更
  {更新(CTX)を
    DB [ctx.params.id] = ctx.request.body
    ctx.body = ctx.request.body
  }

  // ユーザ削除
  {削除(CTX)を
    db.splice(ctx.params.id、 1 
    ctx.status = 204
  }
}

module.exportsは = 新しい USERCTL()

 路線>ユーザー

constのルータは=( 'KOA-ルータ'を必要
CONSTルータ = 新しいルータ({接頭辞'/ユーザー})
CONST {削除、更新、作成、findByIdを見つける} =(」../コントローラ/ユーザの必要とします

router.get( '/' 見つけます。)

router.post( '/' 作成)

router.get( '/:ID' 、findById)

ルータ。削除( '/:ID' 削除)

router.put( '/:ID' 更新)

module.exportsは =ルータ

 

 

 

おすすめ

転載: www.cnblogs.com/zhanghaoblog/p/11710830.html