서버는 다른 URL 또는 요청에 따라 다른 작업을 수행해야하며 라우팅을 통해이 단계를 구현할 수 있습니다.
첫 번째 단계에서는 먼저 요청 URL의 경로를 구문 분석해야하며 URL 모듈을 소개합니다.
브라우저에서 요청한 URL 경로를 찾기 위해 OnRequest () 함수에 논리를 추가해 봅시다.
코드 사본은 다음과 같습니다.
var http = 요구 사항 ( "http");
var url = require ( "url");
함수 start () {
onrequest (요청, 응답) {
var pathname = url.parse (request.url) .pathname;
console.log ( "" + pathname + "에 대한 요청");
response.writehead (200, { "content-type": "text/plain"});
Response.write ( "Hello World");
응답 ();
}
http.createserver (onrequest) .listen (8888);
Console.log ( "서버가 시작되었습니다.");
}
Exports.start = 시작;
좋아, PathName은 요청의 경로이며,이를 사용하여 다른 요청을 구별 할 수 있으므로 다른 코드를 사용하여 요청 /시작 및 /업로드를 처리 할 수 있습니다.
다음으로 경로를 작성하고 router.js라는 파일을 만듭니다. 코드는 다음과 같습니다.
코드 사본은 다음과 같습니다.
기능 경로 (PathName) {
Console.log ( "" + pathname에 대한 요청을 라우팅하려면);
}
Exports.route = 경로;
이 코드는 아무것도하지 않으며 먼저 경로와 서버를 통합합니다.
그런 다음 서버의 start () 함수를 확장하고 start ()에서 라우팅 함수를 실행하고 PathName을 매개 변수로 전달합니다.
코드 사본은 다음과 같습니다.
var http = 요구 사항 ( "http");
var url = require ( "url");
함수 시작 (경로) {
onrequest (요청, 응답) {
var pathname = url.parse (request.url) .pathname;
console.log ( "" + pathname + "에 대한 요청");
경로 (PathName);
response.writehead (200, { "content-type": "text/plain"});
Response.write ( "Hello World");
응답 ();
}
http.createserver (onrequest) .listen (8888);
Console.log ( "서버가 시작되었습니다.");
}
Exports.start = 시작;
동시에, 우리는 라우팅 함수가 서버에 주입 될 수 있도록 index.js를 확장합니다.
코드 사본은 다음과 같습니다.
var server = require ( "./ server");
var router = require ( "./ router");
server.start (router.route);
index.js를 실행하고 /업로드와 같은 경로에 액세스하면 콘솔 출력이 있습니다. /업로드 요청을 라우팅하려고합니다.
이는 HTTP 서버 및 요청 라우팅 모듈이 이미 서로 통신 할 수 있음을 의미합니다.
다음 섹션에서는 다른 URL 요청에 대한 다른 피드백을 구현합니다.