2013-08-27 3 views
2

저는 nodeJS + expressJS를 몇 년 동안 사용해 왔으며 이제 조직을 위해 맞춤형 애플리케이션 플랫폼을 개발하고 있습니다. 우리의 중앙 프레임 워크는 설치된 모듈/응용 프로그램에 대한 공통된 서비스 집합 (인증, 언어, 관리 등)을 제공합니다.하나의 compoundJS 인스턴스에서 여러 "응용 프로그램"을 실행하는 방법은 무엇입니까?

저는 compoundJS로 프레임 워크를 전환하고 싶습니다. 그러나 나는 그것에 의해 부과 된 디자인 제약 (그리고 Rails 애플 리케이션 전반)에 익숙하지 않고, 내가 무엇을했는지를 성취하는 방법을 생각할 수 없다.

  • 나는 단지 하나의 서버 인스턴스를 실행하고 싶습니다 : 우리의 공통 인증 검사를 통해 모든 요청 첫 번째 프로세스를. 그런 다음 응용 프로그램의 컨트롤러로 전달됩니다.

  • 별도의 사이트/응용 프로그램/디렉토리에있는 각 응용 프로그램을 별도로 분리해야합니다 (선호하면 ). 이들 각각의 응용 프로그램은 compoundJS를 사용하여 정상적으로 설계 될 수 있습니다. 그리고 내가 좋아하는 그 (것)들을 설치하고자 :

    cd site/applications 
    npm install site-hr 
    npm install site-finance 
    npm install site-payroll 
    

    이 다음 시간/재무, 운영/급여/모든 경로를 가질 것이다.

어떻게하면됩니까?

모델/컨트롤러/뷰의 비표준/applications/* 폴더를 검색하여 중앙/사이트 구성을 유지하면서 compoundJS를로드하는 방법이 있습니까?

더 좋은 방법이 있습니까?

+0

왜 몇 년 후에 변경됩니까? – WiredPrairie

+0

좋은 질문. 가능한 경우 선반 기술을 사용하고 싶습니다. 모델, 컨트롤러 및 commonJS의 발전기를 활용하고 싶습니다. 시작했을 때 노드에 MVC 프레임 워크가 많지 않았습니다. 지금 우리 팀은 새로운 것을 탐구하고 그것을 우리의 스택에 통합 할 시간이 있습니다. commonJS를 사용하여 유지 관리하려는 코드를 줄일 수 있기를 바랍니다. – user1200245

답변

1

늦게 답변을 드려 죄송합니다. 비슷한 내용이 필요했습니다. 툴 응용 프로그램을 포털에 넣어야했습니다.

부모 애플리케이션의 노드 애플리케이션을 노드 모듈로 포함시키는 방법을 찾았습니다. 나는 그것을 수행하는 방법에 대한 안내서를 작성하고 CompoundJS' guides의 고급 폴더에 추가 요청을 보냈습니다. 또한 here을 사용할 수 있습니다. 약간의 작업이 필요하지만 4 개의 응용 프로그램에서 제대로 작동합니다.

희망이 있습니다.

+0

감사합니다. 이것은 분명히 올바른 방향으로 갈 것입니다. – user1200245

0

이것은 좋은 지적이지만 아직 구현을 보지 못했습니다. 나중에 몇 년이 될 수 있습니다.

프록시 레이어를 사용하면 Nginx, Vanish Cache 등의 일반적인 방법이 사용됩니다. 최첨단 기술자에게는 Phusion Passengerimplemented Node.js support이 있지만 아직 성공적으로 테스트하지 못했다고 들었습니다. Ruby에 익숙하다면 좋은 시도가 될 것입니다.

많은 모듈이 포함 된 큰 프로젝트를 실제로 구성하려는 경우 Cloud9 IDE 프로젝트의 일부 산업화 된 프레임 워크를 사용해 볼 수 있습니다.

인증을 위해서는 각 응용 프로그램에서 독립적 인 방법을 사용해야하지만 하나의 사용자 데이터베이스와 공유 할 수 있다고 생각합니다.

+0

미안하지만, 나는 compoundJS 대신에 "commonJS"를 썼다. 하지만 나는 건축가의 외모를 좋아했습니다. 나는 우리의 틀에서 그것을 사용할 수 있다고 생각합니다. 감사! – user1200245

1

간단합니다. 구성/환경에서 app.use을 사용하십시오.JS는 하위 응용 프로그램을지도로 :

var mod = require('your-compound-module'); 
app.use('/subroot', mod()); 

당신은/subroot/anypath로를 방문 할 때, 다음은 당신의 하위 응용 프로그램의/anypath로의 경로로 처리됩니다. 경로 도우미에 대한 추가 작업은 필요 없으며, '/ subroot'(화합물 측면에서 처리)가 자동으로 시작됩니다.

+0

그럼 'your-comound-module'을 설정하는 방법에 대한 문서가 있으므로 모든 경로, 모델, 뷰 및 컨트롤러를 올바르게 찾아 사용할 수 있습니까? – user1200245

+0

생성기에서 생성 한 일반적인 패턴을 따르십시오. 모듈은 앱을 인스턴스화하는 단일 메소드를 내 보내야합니다. – Anatoliy

관련 문제