Express는 중간부품으로 개발합시다!

개요


저는 업무 중에 Express 응용 프로그램을 개발합니다.
동작을 보장하는 지표로 테스트 코드를 썼지만 Express의 발생기 출력 부분(app.js와 서버.js)까지 매번 테스트 코드를 쓰고 싶지 않았다.
나는 Express가 중간부품 개발에 매우 적합하다고 생각한다.(이유 잠시 후)
따라서 앞으로 Express 응용 프로그램을 만들지 말고 Express 중간부품을 만들자!

이 투고에서 이루고 싶은 이상상.


우선 전제로 현재 제품을 만드는 생각은 다음과 같다.
  • 단일 제품 크기 감소
  • 밖에서 가져온 상태에서 밖에서 가져온다
  • 설정 및 환경 인코딩
  • 공유 사용
  • 이를 바탕으로 다음과 같은 상태를 만들고 싶습니다.

    1. 다중 라우터(응용 프로그램) 공유 서버 구성



    2. 다중 서버 공유 라우터(응용 프로그램)



    널리 알리고 싶은 생각


    위의 이상상을 실현하기 위해 나는 아래의 일을 소중히 여기고 싶다.

    1. 응용 프로그램을 주어로


    Express에서는 라우터이지만 응용 프로그램으로 구성할 독립적인 설정이 주어입니다.

    2. 서버는 환경일 뿐


    서버에 주요 처리가 기록되어 있지 않습니다.
    주요 처리는 응용 프로그램이라고 쓰여 있다.
    이런 응용 프로그램이 실행되는 곳이야말로 서버의 환경이다.

    3. 어플리케이션 선택 환경


    환경에 따라 응용 프로그램을 만드는 것이 아니라 응용 프로그램에 따라 환경을 선택하는 것이다.

    고속 중간부품


    다음은 Express 응용 프로그램의 개발에서 중간부품 단위의 개발이 옳다고 생각하는 이유를 열거한다.

    1. Express에 부합


    Express는 기본 웹 응용 프로그램의 기능을 "간단한 계층 구조"로 표현합니다.
    중간부품은 이 하나하나의 차원을 표현하기 위해 제작되고 사용된다.
    그리고 빠른 중간부품 사용와 같이 "빠른 응용 프로그램은 기본적으로 중간부품 함수 호출이다."
    응용 프로그램을 처리하기 위해 요청 응답 주기를 신속하게 실행합니다.이 요청 응답 주기 중 처리 프로그램은 중간부품 함수 호출입니다.
    따라서 저는 중간부품으로 Express 응용 프로그램의 처리 단위와 Express의 사상이 일치한다고 생각합니다.

    2. request 대상과response 대상 공유


    중간부품을 단위로 개발함으로써 폐쇄된 환경에서 개발할 수 있다.
    다른 한편, 모든request 대상과response 대상은 같은 속성을 인용합니다.
    계승하고 싶은 처리 내용은response 대상에 발송되며, 그 외에 폐쇄된 환경에서 안전하게 개발할 수 있습니다.

    3. 중간부품의 개발자와 사용자는 공감대를 형성하기 쉽다


    개발자는 고속 중간부품 범위 내에서 개발을 진행한다.
    사용자는 그것이 고속 중간부품이라는 것을 이해하고 사용할 수 있다.
    나는 서로 고속 중간부품이라는 규칙에서 정적 모델이 주류가 되는 흐름에 부합된다고 생각한다.

    개발


    개발은 TypeScript로 이루어집니다.
    실제 처리 코드와 서버부 공유기는 모두 /src/ 안에 있다.
    VSCode의 구성 파일은 walk8243/qiita-express-middleware 에 있습니다.

    서버부


    실제 개발된 코드는 walk8243/express-middleware-server에 있다.

    득점

  • server.ts의 클러스터 설정
  • app.ts의 애플리케이션 기본 설정
  • router.ts 애플리케이션 측 라우터 지정

  • npm-scripts의 postinstall 설정 구축
  • package.jsonbin에서 시작 스크립트 설정

  • 애플리케이션 측면에서 클러스터 수, 포트 번호, 라우터 위치 설정 가능

  • 환경 변수에 따라 설정 가능
  • package.jsonconfig에서 설정할 수 있음(환경 변수에 의해 지정되지 않은 경우)
  • 라우터부 (응용 프로그램)


    실제 개발된 코드는 walk8243/express-middleware-router에 있다.

    득점


  • dependencies에 서버부 추가
  • express@types/node등에게서버부

  • npm-scriptsstart에서 지정서버부 시작 스크립트
  • 총결산


    이 투고의 총결은 아래와 같다.
  • 어플리케이션 기본 제공
  • 서버부 후면
  • 좋은 웹페이지 즐겨찾기