ChicagoBoss 안내

이나영
(ChicagoBoss)[http://www.chicagoboss.org] Evan Miller 가 창작 하고 erlang / OTP 를 사용 하 는 개발 자 들 은 Ruby On Rail 웹 프레임 워 크 와 유사 한 MVC 모델 을 통 해 표준 웹 애플 리 케 이 션 을 개발 할 수 있 습 니 다.erlang 은 자바 와 마찬가지 로 컴 파일 형 언어 에 속 합 니 다. erlang 의 원본 파일 은 하나의 beam 파일 로 컴 파일 됩 니 다. beam 파일 은 erlang 의 가상 컴퓨터 에서 실 행 될 수 있 습 니 다. 자바 컴 파일 된 바이트 코드 가 자바 가상 컴퓨터 JVM 에서 실 행 된 것 과 같 습 니 다.이 글 의 시리즈 에서 저 는 여러분 과 Chicago Boss 에 대해 이야기 하 겠 습 니 다.저 는 여러분 들 이 erlang 을 알 고 있 거나 기능 성 개발 지식 을 알 고 있다 고 가정 합 니 다. 그렇지 않 으 면 learnyousomeerlang. org 를 방문 하여 공부 하 는 것 을 권장 합 니 다.
한 걸음 한 걸음 걸어오다
erlang 설치
시스템 버 전: Linux Ubuntu 14.04, 나 는 보통 미리 설 치 된 erlang 을 마 운 트 해제 하고 실행 할 때 원본 커 널 을 사용 하여 수 동 으로 설치 합 니 다.셸 에서 아래 대로 실행
> cd ~
> mkdir bin
> cd bin
> sudo apt-get remove erlang
> sudo apt-get build-dep erlang
> curl -O[https://raw.githubusercontent.com/spawngrid/kerl/master/kerl](https://raw.githubusercontent.com/spawngrid/kerl/master/kerl)
> chmod u+x kerl
> echo "" >> ~/.kerlrc
> ./kerl update releases
> ./kerl build 17.5 17.5
> ./kerl install 17.5 ~/bin/lang/erlang/17.5
> echo "source ~/bin/lang/erlang/17.5/activate" >> ~/.profile
> echo "export PATH=$PATH:$HOME/bin:." >> ~/.profile

위 절차 가 완료 되면 기계 위 에 작업 할 수 있 는 erlang 이 실 행 될 때 셸 에 erl 을 입력 하면 erlang REPL 을 얻 을 수 있 습 니 다.
ChicagoBoss 설치
여전히 셸 에서 작 동 합 니 다.
>sudo apt-get install git
>mkdir workspace
>cd workspace
>git clone [http://github.com/ChicagoBoss/ChicagoBoss.git](http://github.com/ChicagoBoss/ChicagoBoss.git) -b v0.8.13

저희 첫 번 째 Chicago Boss (CB) 프로젝트 를 만 들 고 개발 합 니 다.
여전히
>cd
>cd workspace/ChicagoBoss
>make app PROJECT=first
>cd ../first
>./init-dev.sh

CB 응용 소스 파일 트 리 구조
first/
├── boss.config
├── init-dev.sh
├── init.sh
├── deps
│   ├── boss
│   ├── boss_db
│   └── ...
├── log
│   ├── console.log
│   ├── crash.log
│   └── error.log
├── Makefile
├── priv
│   ├── first.routes
│   ├── init
│   ├── rebar
│   └── static
├── README.md
├── rebar
├── rebar.cmd
├── rebar.config
├── src
│   ├── controller
│   ├── first.app.src
│   ├── mail
│   ├── view
│   └── websocket
└── start-server.bat
  • boss. config 는 응용 프로그램의 프로필 입 니 다.
  • init - dev. sh 가 응용 개발 모델 을 시작 하여 다시 불 러 오고 다시 컴 파일 합 니 다.
  • init. sh start your app 시작 프로그램.
  • deps, 모든 의존 프로그램 을 보 여 줍 니 다.
  • log, 프로그램 로그 파일.
  • priv / first. routes, 사용자 정의 경로 정보 설정 파일
  • priv / init, 스 크 립 트 초기 화
  • priv / static, 정적 파일
  • src / controller, 프로그램의 controller 컨트롤 러 가 있 는 디 렉 터 리.
  • src / mail, 메 일 컨트롤 러 가 있 는 디 렉 터 리
  • src / view /. html 보기 파일 은 컨트롤 러 이름 / 동작 이름 에 따라 이름 을 짓 습 니 다.
  • src / websocket, 웹 소켓 controller 가 있 는 디 렉 터 리
  • 어떤 IDE 를 선택 하 시 겠 습 니까?
    저 는 개인 적 으로 Emacs 를 사용 하 는 것 을 권장 합 니 다. 어떤 사람들 은 Sublime Text, some Erlide 또는 VIM 을 사용 할 것 입 니 다. 어떤 것 을 사용 하 느 냐 는 전적으로 당신 에 게 달 려 있 습 니 다. 어떤 텍스트 편집기 만 사용 하면 됩 니 다.
    나의 첫 번 째 controller / view 컨트롤 러 와 보기
    관례 에 따 르 면, 컨트롤 러 의 이름 은 다음 과 같 아야 한다.
    /src/__controller.erl
    예 를 들 어 index 라 는 contrller 를 만 들 고 싶 습 니 다. index 라 는 action 을 포함 하여 브 라 우 저 에 접근 할 때.http://localhost:8001/index/indexhello world 라 는 글자 가 나 옵 니 다.first / src / controller / first 편집index_controller. erl 아래 처럼:
    -module(first_index_controller, [Req, SessionId]).
    -export([index/3]).
    index('GET', [], _ReqCtx) ->
    {ok, [{msg, "Hello World!!!"}]}.

    응답 하 는 보기 파일 은: / src / view /.
    index controller 에 있 는 index action 보기 파일 은: first / src / view / index / index. html 아래 에 따라 편집 합 니 다.
    {{ msg }}

    그리고 셸 에서 curl 명령 을 통 해 접근:
    curl -X GET[http://localhost:8001/index/index](http://localhost:8001/index/index)

    action:
    CB 의 action 중 하 나 는 2 ~ 3 개의 인 자 를 포함 하 는 방법 이다.첫 번 째 매개 변 수 는 request 요청 과 일치 하 는 방법 입 니 다. 예 를 들 어 'GET', 'POST', 'PUT', 'DELETE', 'HEAD'. 두 번 째 매개 변 수 는 url 의 token 토 큰 정보 입 니 다.세 번 째 매개 변 수 는 선택 할 수 있 습 니 다. 요청 한 컨 텍스트 정보 입 니 다. CB 는 action 에 요청 한 컨 텍스트 정 보 를 제공 합 니 다. context 는 사실 키 쌍 목록 입 니 다. 그 중의 키 쌍 은 일부 boss 에 있 을 수 있 습 니 다.filter 필터 의before 방법 에서 수정 되 었 습 니 다.다음 예제 에 서 는 context 컨 텍스트 가 있 는 action 을 보 여 줍 니 다.
    -module(first_index_controller, [Req, SessionId]).
    -export([index/3]).
    index('GET', [], ReqCtx) ->
    lager:info("Request Context: ~p",[ReqCtx]),
    {ok, [{msg, "Hello World!!!"}]}.

    기본 동작
    기본 action 이 무엇 인지, 요청 한 url 에서 어떤 action 을 실행 할 지 판단 할 수 없 을 때 기본 action 으로 전 송 됩 니 다. 이러한 기능 을 제공 할 필요 가 있다 면 controller 에서 속성 * - default 을 사용 할 수 있 습 니 다.action()。CB 프로그램 에서 기본 액 션 을 제공 하지 않 으 면 404 페이지 로 이동 합 니 다.
    예 를 들 어 index controller 에서 이렇게 정의 합 니 다.
    curl -X GET[http://localhost:8001/index](http://localhost:8001/index)

    then http://loaclhost:8001/index will execute the default action index.
    -module(first_index_controller, [Req, SessionId]).
    -export([index/3]).
    -default_action(index).
    index('GET', [], _ReqCtx) ->
    {ok, [{msg, "Hello World!!!"}]}.

    curl 명령 으로 접근
    curl -X GET[http://localhost:8001/index](http://localhost:8001/index)

    이때 http://loaclhost:8001/index 기 회 는 기본 index 라 는 action 으로 이동 하여 실행 하면 페이지 에 한 줄 의 텍스트 가 나타 납 니 다.
    hello world.
    다음으로 전송:https://www.cnblogs.com/vowei/p/4417429.html

    좋은 웹페이지 즐겨찾기