3

node.js가 클라이언트 및 웹 서버와 어떻게 잘 맞는지에 대한 내 설명은 정확합니까?node.js는 클라이언트에 어디에 있습니까 <--> 웹 서버 흐름?

  • (A)이다 클라이언트
  • (B)는 Node.js를 일부 웹 서버
  • (C)에서 실행되는
  • 는 비즈니스 로직, 데이터베이스 액세스 루틴, 예를 호스팅 "서비스"이다 "GetCustomer()". 간단하게하기 위해 서비스 (C)가 REST 인터페이스를 노출한다고 가정합니다.

그래서 클라이언트 (A)는 node.js (B)에서 일부 리소스를 요청합니다. 그러면 node.js (B)에서이 요청을 비동기 및 이벤트 I/O 장점으로 전달합니다. C) 어떤 고객 정보를 얻고 콜백을 통해 node.js (B)로 반환 한 다음 node.js가 해당 응답을 클라이언트에 반환합니다.

1. 정확합니까?

두 관련 질문 :

2.How은에 요청을 파견하는 서비스를 알고 Node.js를합니까? 클라이언트가 서비스와 직접 이야기하지 않기 때문에 service API를 미러링하는 node.js에 api "스텁"을 만들어야합니까?

3.이 아키텍처에서 세션 상태는 어떻게 처리됩니까? 일반적인 흐름의 모두 "도"의

+0

왜 Node.js에서 처리 할 수 ​​없습니까?Node.js 메일 링리스트에서 더 잘 질문 할 수 있습니다. –

+0

@ Josh - 첫 번째 질문의 의미가 확실하지 않습니다. 메일 링리스트와 관련해서는 StackOverflow입니다! 여기 node.js 질문의 톤이 있습니다. SO의 목적은이 물건을 통합하는 것입니다. – Howiecamp

+0

목적은 "직접 Node.js를 사용하여 X를 수행하는 방법"과 비교하여 직접적인 질문을하는 것입니다.이 방법은 사용의 철학과 목적입니다. * *. –

답변

7

첫째 : 마지막 두 가지 질문에 관한

 Client         
     |          
     v          
    Request        
     |         
     v               
(load balancer e.g. nginx)     
     |         
     v          
Node.js Instance       
|  |  |        
v  v  V        
DB APIS FILES       

는 :

  1. 어떻게 당신은 알고 싶어? Node.js는이를 처리 할 코드를 작성해야하는 일반 프레임 워크입니다.

  2. 다시 Node.js는 완전히 일반적인 것입니다. 인스턴스가 하나 뿐인 경우 일 수 있습니다. 그렇지 않으면 아마 redis 등을 사용하게 될 것입니다.

Node.js에 게임 서버를 작성할 수 있으며, 숫자 만 처리하거나 웹 서버를 작성할 수 있습니다.

하지만 원하는 방식으로 수행하거나 원하는 방식으로 프레임 워크를 검색하십시오.

+0

나는 노드와 관련하여 "알 수없는 알려지지 않은"범주에 있다는 것을 깨달았습니다. 나는 무엇을 묻는 지조차 몰라서 그다지 알지 못합니다. node.js에 대한 게시물과 여기 다른 곳에서 동일한 결론을 볼 수 있습니다. 많은 사람들이 구체적인 질문을하기가 어려워 보이기 때문에 답변을 모호하게 여긴다. 내 질문 # 2에 대해서는 분명히 잘못 대답했습니다. http 요청이 node (어떻게 나머지 API .../customer/1라고 가정 해 봅시다)로 보내지고 그런 다음에 나머지 서비스에 파견 될 수 있는지에 대한 아주 기본적인 예제를 줄 수 있습니까? – Howiecamp

+0

REST를 처리하려면'httpServer'를 설정하고 들어오는 연결을 처리해야합니다. 사람들이 이미 당신을 위해 그런 종류의 일을 할 수있는 많은 모듈이 있습니다 (https : // github.com/ry/node/wiki/Modules#web-frameworks-full) 나 자신이 현재 http://expressjs.com/으로 사이트를 만들고 있으며, 작년에 Node.js와 함께 멀티 플레이 게임을 만들었습니다. : //github.com/BonsaiDen/NodeGame-Shooter. 우리의 태그 위키 http://stackoverflow.com/tags/node.js/info에서 링크/대화를 체크 아웃해야합니다. –

2

Node.js는 웹 브라우저에서 실행되지 않는 javascript로 응용 프로그램을 작성하기위한 프레임 워크입니다. 그것의 비동기 성질 때문에 그것은 웹 서비스를 작성하는데 정말로 좋을 것입니다. (B) Node.js는 웹 서버이며, 웹 서버 (아파치) 내에서 실행되지 않습니다. (C) 모든 로직은 Node.js 앱에있을 수 있으며, Node.js 앱은 다른 서비스와 통신하여 데이터를 얻을 수 있습니다. 그것은 전적으로 당신에게 달려 있습니다.

2의 경우 원하는대로 할 수 있습니다. 코드 작성 중이며 앱에서 의미있는 방식으로 사용하십시오.

3의 경우 상태는 콜백으로 전달되는 세션/연결 개체에 의해 처리됩니다.

+0

아마 내가 이해하지 못하는 부분은 제가 이것을 더 복잡하게하려고 노력하고 있다는 것입니다. – Howiecamp