> 웹 프론트엔드 > JS 튜토리얼 > nodejs 서버를 쉽게 생성하세요 (4): 라우팅

nodejs 서버를 쉽게 생성하세요 (4): 라우팅

PHPz
풀어 주다: 2018-09-30 09:59:44
원래의
1266명이 탐색했습니다.

서버는 다양한 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 비디오 튜토리얼을 방문하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿