서버는 다양한 URL이나 요청에 따라 다양한 작업을 수행해야 합니다. 이 단계는 라우팅을 통해 구현할 수 있습니다.
첫 번째 단계에서는 요청 URL의 경로를 구문 분석하고 url 모듈을 소개합니다.
브라우저가 요청한 URL 경로를 찾기 위해 onRequest() 함수에 몇 가지 로직을 추가해 보겠습니다.
var http = require("http"); var url = require("url"); function start() { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;好了,pathname就是请求的路径,我们可以用它来区别不同请求了,这样一来我们就可以对来自/start和/upload的请求使用不同的代码来处理。
그런 다음 경로를 작성하고 router js 파일이라는 라우터를 생성해 보겠습니다. , 코드는 다음과 같습니다.
function route(pathname) { console.log("About to route a request for " + pathname); } exports.route = route;
이 코드는 라우팅과 서버를 먼저 통합해 보겠습니다.
그런 다음 서버의 start() 함수를 확장하고 start()에서 라우팅 함수를 실행한 다음 경로 이름을 매개변수로 전달합니다.
var http = require("http"); var url = require("url"); function start(route) { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); route(pathname); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;
동시에 라우팅 기능이 서버에 주입될 수 있도록 index.js를 확장합니다.
var server = require("./server"); var router = require("./router"); server.start(router.route);
index.js를 실행하고 모든 경로에 액세스합니다. , 예를 들어 / upload와 같이 /upload에 대한 요청을 라우팅하려는 콘솔 출력을 찾을 수 있습니다.
이는 HTTP 서버와 요청 라우팅 모듈이 이미 서로 통신할 수 있음을 의미합니다.
위 내용은 이 장의 전체 내용입니다. 더 많은 관련 튜토리얼을 보려면 Node.js 비디오 튜토리얼을 방문하세요!