>  기사  >  웹 프론트엔드  >  nodejs 요청 Routing_node.js 개요

nodejs 요청 Routing_node.js 개요

WBOY
WBOY원래의
2016-05-16 16:42:241622검색

일반적으로 서버는 다양한 URL 요청에 다르게 응답해야 합니다. 요청된 URL과 기타 필수 GET 및 POST 매개변수를 경로에 제공해야 하며, 그런 다음 경로는 이러한 데이터를 기반으로 해당 코드를 실행해야 합니다. 필요한 모든 데이터는 onRequest() 콜백 함수의 첫 번째 매개변수로 전달되는 요청 객체에 포함됩니다. 이 데이터를 구문 분석하려면 추가 모듈, 즉 url 및 querystring 모듈을 호출해야 합니다.

URL:이것
모듈에는 URL 확인 및 구문 분석을 위한 유틸리티가 있습니다.
에 require('url')을 호출하세요. 사용하세요.

구문 분석된 URL 객체에는 URL 문자열에 존재하는지 여부에 따라 다음 필드 중 일부 또는 전부가 있습니다. URL 문자열에 없는 부분은 구문 분석된 객체에 포함되지 않습니다.

'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

href: 원래 구문 분석된 전체 URL은 프로토콜과 호스트 모두 소문자입니다.
예: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'

프로토콜: 요청 프로토콜, 소문자.
예: 'http:'

호스트: 포트 정보를 포함하여 URL의 전체 소문자 호스트 부분입니다.
예: 'host.com:8080'

auth: URL의 인증 정보 부분.
예: '사용자:패스'

호스트 이름: 호스트의 소문자 호스트 이름 부분입니다.
예: 'host.com'

port: 호스트의 포트 번호 부분.
예: '8080'

경로 이름: 호스트 뒤, 쿼리 앞에 오는 URL의 경로 섹션(있는 경우 초기 슬래시 포함).
예: '/p/a/t/h'

검색: 선행 물음표를 포함하는 URL의 '쿼리 문자열' 부분입니다.
예: '?query=string'

path: 경로명과 검색어를 연결한 것입니다.
예: '/p/a/t/h?query=string'

쿼리: 쿼리 문자열의 'params' 부분 또는 쿼리 문자열이 구문 분석된 개체입니다.
예: 'query=string' 또는 {'query':'string'}

해시: 파운드 기호를 포함하는 URL의 '조각' 부분.
예: '#hash'

종속성 주입을 사용하여 느슨하게 라우팅 모듈을 추가하겠습니다. 라우팅 대상인 함수를 요청 핸들러라고 합니다. 요청 처리 함수를 구현하려면 requestHandlers라는 모듈을 만들어야 합니다. 물론 다른 이름으로 지정할 수도 있습니다. 그리고 각 요청 핸들러에 대해 자리 표시자 함수를 추가한 다음 이러한 함수를 모듈 메소드로 내보내 요청 핸들러와 라우팅 모듈을 연결하여 라우팅을 따를 수 있도록 합니다.

특히, 일련의 요청 핸들러는 객체를 통해 전달되어야 하며, 이 객체는 느슨하게 결합된 방식으로 Route() 함수에 주입되어야 합니다.

연관 배열에서 요소를 가져오는 것과 동일한 방식으로 전달된 개체에서 요청 처리 기능을 가져올 수 있으므로, handler[경로 이름]();과 같은 간단하고 부드러운 표현이 있습니다. 코드는 다음과 같습니다.

var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.