개발/Node
# [node.js] node.js 로 간단한 서버를 만들어 보자
ForrestPark
2025. 1. 8. 17:17
ℹ️ 참고
1.📚 도서,Node.js백엔드 개발자 되기 2.5.1 hello.js
간단한 서버 프로그램을 생성 해보자
const http = require("http");// http 객체 생성
let count = 0;
const server = http.createServer((req,res) => {
log(count); //페이지 조회 카운트 출력 함수
res.statusCode = 200; // response success
// res.setHeader("Content-Type", "text/plain");
res.setHeader("Content-Type", "text/html");
// response 에서 작성
res.write('<span style ="color:red"> hello</span> \n')
setTimeout(() => {
res.end("Node.js");
}, 3000);
});
function log(count){
// 누군가 port 로 들어오면 count 가 1씩 증가 하고 출력
console.log((count += 1));
}
// 8000port 열고나면 실행창에 h
server.listen(8000, () => console.log("8000 port open!"));
💁♂️ Code 해석
- require() 함수 : 모듈을 읽어옴. http 모듈을 불러와서 http 변수에 할당. 모듈명과 변수명은 같게 해주는 것이 관행.
- createServer() : 서버 인스턴스 생성 함수. 인수로 콜백 함수를 받음. 콜백함수에서는 http 서버로 요청이 들어올시 해당 요청을 처리할 함수를 설정함. 콜백함수는 요청 처리에 사용할 요청과 응답 객체를 인수로 받음.
- log(count) : 전역 변수 count 를 사용해 요청에 대한 로그를 간단하게 남김
- res.statusCode=200 : 요청 성공
- res.setHeader("Content-Type","text/plain") :
- http 는 요청 응답에 대한 부가정보를 설정할수 있음.
- header 에 부가정보를 설정함.
- 컨텐츠의 타입을 plain text 타입으로 설정함.
- 만약 text/html 이라면 텍스트를 html 로 해석한다는 뜻이됨
- 이외에 자주 설정하는 헤더 Accept, Accept-Charset, User-Agent, Referrer 등이있음
- res.write("hello\n) : 응답으로 'hello\n'을 보내줌.
- setTimeout(() => {res.end("Node.js"),2000}:
- 콜백 함수와 숫자를 인자로 받음. 숫자는 밀리초, 해당시간경과시 콜백 함수를 실행.
- 2초후 "node.js 응답으로 주고 http 커낵션을 끝냄(res.end)
- setTimeOut(), setInterval 과 같은 함수는 타이머를 사용함.
- 이벤트 루프에서 콜 스택을 모니터링하면서 실행할 시점을 정함.
- server.listen(8000, ()=> console.log("Hello Node.js")); :
- 사용할 포트를 8000으로 지정함. ip 생략되엇으므로 기본값 localhost 혹은 127.0.0.1로 서버 접근 가능
Code 실행 결과
2초후에 Node.js 가 나타나는것을 알수 있다.
terminal 에 curl 을 두개 띄워서 빠르게 서버접속하여 비동기 처리 확인