응용프로그램 구축 모듈 - HTTP 서버 기반

3447 단어

응용프로그램 구축 모듈


HTTP 서버 기반


내가 나의 첫 번째'진짜'node.js 응용 프로그램을 쓰기 시작할 때, 나는 node.js 코드를 어떻게 쓰는지 모를 뿐만 아니라, 이 코드들을 어떻게 조직해야 하는지도 몰랐다.
서류에 모든 것을 넣어야 합니까?인터넷에는 많은 강좌들이 너에게 모든 논리적 내용을 node로 넣는 것을 가르쳐 줄 것이다.js가 쓴 기본 HTTP 서버에서하지만 내가 더 많은 내용을 넣고 싶다면 동료들은 코드의 가독성을 유지하고 싶을까?
실제로 서로 다른 기능의 코드를 서로 다른 모듈에 넣기만 하면 코드의 분리를 유지하는 것은 상당히 간단하다.
이런 방법은 당신이 깨끗한 메인 파일을 가질 수 있도록 허락한다. 당신은 node를 사용할 수 있다.js로 실행하기;또한 주 파일과 다른 모듈에 호출될 수 있는 깨끗한 모듈을 가지고 있습니다.
그러면 이제 Google 응용 프로그램을 시작하는 주 파일과 HTTP 서버 코드를 저장하는 모듈을 만듭니다.새 서버라고 합니다.js의 파일
var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World
'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/');

끝내다작업 가능한 HTTP 서버를 완성했습니다. 이를 증명하기 위해 이 코드를 실행하고 테스트합니다.우선,node로.js가 실행합니다.node server.js
다음 브라우저 액세스 열기http://127.0.0.1:8124/,'Hello World'라고 적힌 페이지를 볼 수 있습니다.
이거 재미있지, 그렇지 않아?일단 분석을 해볼게요.
HTTP 서버 구성
첫 번째 줄 요청(require)node.js가 자체로 가지고 있는 http 모듈입니다. http 변수에 값을 부여합니다.
다음에 http 모듈에서 제공하는 함수를 호출합니다:createServer.이 함수는 하나의 대상을 되돌려줍니다. 이 대상은listen이라는 방법이 있습니다. 이 방법은 HTTP 서버가 감청하는 포트 번호를 실행하는 수치 매개 변수가 있습니다.
이러한 코드를 사용하여 서버를 시작하고 8124 포트를 수신할 수 있습니다.
var http = require("http");

var server = http.createServer();
server.listen(8124);

실제로 이 함수 정의는createServer ()의 첫 번째이자 유일한 매개 변수입니다. 자바스크립트에서 함수는 다른 변수와 마찬가지로 전달될 수 있기 때문입니다.
함수 전달
예를 들어 이렇게 할 수 있다.
function say(word) {
  console.log(word);
}

function execute(someFunction, value) {
  someFunction(value);
}

execute(say, "Hello");


여기서 우리는say함수를excute함수의 첫 번째 변수로 전달했다. 여기서 전달하는 것은say의 반환값이 아니라say 자체이다.
이렇게 되면 say는 excute의 로컬 변수인someFunction이 되고 excute는someFunction()을 호출하여say 함수를 사용할 수 있다.
현재,say에 변수가 있기 때문에,excute는someFunction을 호출할 때 이 변수를 전달할 수 있습니다.
함수를 변수로 전달하여 다른 함수의 괄호에 직접 정의하고 전달할 수 있습니다.
function execute(someFunction, value) {
  someFunction(value);
}

execute(function(word){ console.log(word) }, "Hello");


excute가 첫 번째 인자를 받아들이는 곳에서 excute에 전달할 함수를 직접 정의합니다. 이런 식으로 우리는 심지어 이 함수에 이름을 붙이지 않습니다. 이것은 왜 익명 함수라고 불리는지 이유입니다.
함수 전달이 HTTP 서버를 어떻게 작동하게 하는지
이런 지식을 가지고 우리는 간단하지만 간단하지 않은 HTTP 서버를 다시 한 번 보았다
var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World
'); }).listen(8124);

createServer 함수에 익명 함수를 전달했습니다.
이와 같은 코드로도 같은 목적을 달성할 수 있다.
var http = require("http");

function onRequest(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}

http.createServer(onRequest).listen(8124);

서버가 요청을 어떻게 처리하는지


리셋이 시작되면, onRequest () 함수가 터치될 때, 두 개의 인자가 전송됩니다. Request와response입니다.
HTTP 요청의 세부 사항을 처리하고 요청에 응답할 수 있는 대상입니다. (예를 들어 요청한 브라우저에 메시지를 보내는 것)
상기 코드는 다음과 같습니다: 요청을 받았을 때resp를 사용합니다.writeHead () 함수는 HTTP 상태 200과 HTTP 헤더의 내용 형식 (content-type) 을 보내고response를 사용합니다.write() 함수는 HTTP의 해당 바디에 텍스트 "Hello World"를 보냅니다.
마지막으로, 우리는response를 호출합니다.end () 응답이 완료되었습니다.

좋은 웹페이지 즐겨찾기