node.js에서 제공하는 내장 'http' 모듈 사용
node.js의 내장 모듈 목록 >> https://www.w3schools.com/nodejs/ref_modules.asp
소스코드)
// WebServer 생성 코드
// require('추가할 모듈명') : 모듈 사용 선언
const http = require('http'); // node.js에서 제공하는 내장 'http' 모듈 사용 - 초기값이 변하지 않도록 상수(const)로 선언
const hostname = '127.0.0.1';
const port = 1337;
// createServer() : 컴퓨터의 포트에서 수신 대기하는 서버 생성
// server.listen() : 지정된 포트 또는 경로에 리스너를 생성
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type' : 'text/plain'});
res.end('Hello world\n');
}).listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
결과)
소스코드 분석)
1. 웹서버를 실행하기 위해 http 모듈을 require로 불러온다.
(requrie는 JAVA의 import와 같은 역할을 하며 require 후에 해당 모듈을 변수에 담은 후 하나의 독립적인 객체로 사용)
const http = require('http');
2. http 모듈에 정의되어 있는 createServer() 함수로 서버를 생성한다.
createServer() 함수에 파라미터로 콜백 함수가 전달되고 이벤트 발생 시 콜백 함수를 호출한다.
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type' : 'text/plain'});
res.end('Hello world\n');
});
writeHead() 함수는 요청에 대한 응답 헤더를 보내준다.
첫 번째, 두 번째 인자로 각각 http 상태 코드(statusCode)와 상태 메세지(statusMessage - 생략가능)를 넘겨주고,
마지막 인자(headers)로는 응답 헤더를 넘겨준다.
브라우저는 header 값을 보고 서버에서 넘어온 값을 파악하여 실제 값을 header에 셋팅된 설정에 맞게 화면에 출력한다.
response.writeHead(statusCode[, statusMessage][, headers])
res.writeHead(200, {'Content-Type' : 'text/plain'});
end() 함수는 모든 응답 헤더와 본문이 전송되었음을 서버에 알리고, 파라미터로 데이터를 담아 사용자에게 전달한다.
response.end([data[, encoding]][, callback])
res.end('Hello world\n');
※ 참고
'개발 공부 > Node.js' 카테고리의 다른 글
[Node.js] class-validator (0) | 2022.03.17 |
---|---|
[Node.js] Express - Pug (템플릿 엔진) (0) | 2022.02.15 |
[Node.js] Express.js - (아주아주) 간단한 웹 앱 만들기 1 (0) | 2022.02.14 |
[Node.js] npm - UglifyJS 모듈 (0) | 2022.01.27 |
[Node.js] VSCode - Node.js 개발 환경 설정 및 npm으로 외부 모듈 설치하기 (0) | 2022.01.24 |