7 더 나은 프로젝트 디렉토리 구조

코드의 우리의 성장 양이 분명히 불합리한 될 때까지 위의 CRUD의 예에서 1, 우리는 모든 경로 및 컨트롤러,에서하는 index.js로 작성됩니다. 따라서, 우리는 좋은 프로젝트 구조를 구축해야한다

 먼저, 루트 디렉토리에 응용 프로그램 폴더를 생성, 디렉토리가 배치됩니다하는 index.js

 응용 프로그램 폴더에서 디렉토리 컨트롤러 컨트롤러, 라우팅 디렉토리 경로를 만들

 

 

 

 

독립적으로 기능하기 위해 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

DB = CONST [ 
  { "이름": "zhanghao" } 
] 

클래스 USERCTL { 
  // 사용자의 목록 
  찾기 (CTX) { 
    ctx.body = DB 
  } 

  // 증가 사용자 
  {(CTX)를 만듭니다 
    ctx.verifyParams을 ({ 
      이름 : { 유형 : '문자열'요구 : true로 }, 
      나이 : {유형 : '수'요구 : false로 } 
    }) 
    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 메소드) 

라우터. 삭제 ( '아이디 /' 삭제) 

router.put ( '/ : ID' 업데이트) 

module.exports을 = 라우터

 

 

 

추천

출처www.cnblogs.com/zhanghaoblog/p/11710830.html