javascript - 노드가 중간 계층이라는 것이 무엇을 의미합니까? 자세히 설명할 수 있습니까?
怪我咯2017-05-16 13:43:16
0
5
826
노드에 노출된 적이 없습니다. 노드가 중간 계층으로 사용된다는 기사를 자주 읽습니다. 구체적으로 무엇을 의미하는지 모르겠습니다. 예를 들어 프로그램에서 어떤 문제가 해결됐는지, 렌더링 문제가 해결됐다면 페이지 측면에서도 그렇고, 프런트엔드 프레임워크도 해결됐다고 할 수 있을까요? 프레임워크를 만든 다음 이 모든 것을 프런트엔드에 집어넣나요?
많은 프로젝트에서 백엔드 애플리케이션에는 둘 이상의 서비스가 있는 경우가 많지만 자체 임무를 수행하는 서비스 그룹이 있습니다. 예를 들어, 여러 서비스가 서버에서 실행되고 다양한 네트워크 요청이 다양한 서비스에서 처리되기 때문에 nginx가 존재합니다. 서비스 이전에는 nginx 계층이 다른 서비스에 요청을 배포하는 프록시 역할을 한다고 가정합니다. 여기서 nginx의 역할은 중간 계층과 동일합니다.
더 복잡한 웹 사이트의 경우 페이지 요청은 일반적으로 페이지 요청과 데이터 요청(ajax)의 두 가지 유형으로 나뉩니다. 백엔드가 단일 애플리케이션인 경우 모든 요청의 양이 처리하기에는 너무 많다고 판단되면 이러한 분리를 고려하여 페이지 렌더링 처리 요청을 다른 서비스에 할당하고 사전에 차단할 수 있습니다. 데이터 관련 업무만 담당합니다. Nodejs는 IO 집약적인 작업을 잘 처리하고 페이지 렌더링 서비스를 처리하는 데 매우 적합하므로 많은 사람들이 nodejs를 선택합니다. Taobao는 유사한 아키텍처를 가지고 있으며 이제 모든 Taobao 페이지가 노드 서비스에 의해 렌더링된다고 합니다.
많은 프로젝트에서 백엔드 애플리케이션에는 둘 이상의 서비스가 있는 경우가 많지만 자체 임무를 수행하는 서비스 그룹이 있습니다. 예를 들어, 여러 서비스가 서버에서 실행되고 다양한 네트워크 요청이 다양한 서비스에서 처리되기 때문에 nginx가 존재합니다. 서비스 이전에는 nginx 계층이 다른 서비스에 요청을 배포하는 프록시 역할을 한다고 가정합니다. 여기서 nginx의 역할은 중간 계층과 동일합니다.
더 복잡한 웹 사이트의 경우 페이지 요청은 일반적으로 페이지 요청과 데이터 요청(ajax)의 두 가지 유형으로 나뉩니다. 백엔드가 단일 애플리케이션인 경우 모든 요청의 양이 처리하기에는 너무 많다고 판단되면 이러한 분리를 고려하여 페이지 렌더링 처리 요청을 다른 서비스에 할당하고 사전에 차단할 수 있습니다. 데이터 관련 업무만 담당합니다. Nodejs는 IO 집약적인 작업을 잘 처리하고 페이지 렌더링 서비스를 처리하는 데 매우 적합하므로 많은 사람들이 nodejs를 선택합니다. Taobao는 유사한 아키텍처를 가지고 있으며 이제 모든 Taobao 페이지가 노드 서비스에 의해 렌더링된다고 합니다.
진실은 정적 리소스 관리 및 요청 전달에 nodejs를 사용하는 것입니다.
백엔드는 데이터 인터페이스만 담당하고, 프런트엔드는 라우팅 및 정적 리소스를 담당합니다.
노드의 중간 레이어가 추가되어 프런트 엔드는 뷰 레이어와 제어 레이어를 처리하고 백엔드는 모델 레이어만 처리합니다. 프론트엔드와 백엔드의 분리는 비교적 완벽하며, 업무 분업도 더 명확해야 합니다.
또한 일부 프레임워크는 서버가 노드가 아닐 때 SEO를 수행하기가 더 어렵습니다. 노드 미들 레이어를 추가하고 나면 SEO가 더 쉬워집니다
노드는 체인 실행입니다
요청 수신 -> 미들웨어 2 -> ... 미들웨어 n ... ->
미들웨어는 특정 처리 작업입니다타오바오 중간중간 확인하실 수 있습니다. 핵심 개념은 다 들어있다고 할 수 있습니다.