개발노트/Node.js

[Node.js] Tutorial - 서버 만들기

Dahoon06 2021. 9. 23. 22:49
728x90
반응형
Tutorial - 웹서버 연결

 

const http = require('http');
const hostname = '127.0.0.1';
const port = 3333;

http.createServer((req, res) => {
    res.writeHead(200,{'Content-Type': 'text/plain'});
    res.end('Hello World With egoing');
}).listen(port,hostname,() => {
    console.log('서버 실행 되었습니다 사용중인 포트 번호 : ' + port);

});

 

const http = require('http');

: 노드 모듈을 가져온다 ( http 모듈 사용 )
const hostname = '127.0.0.1';

: 사용할 서버 호스트네임 ex) 127.0.0.1
const port = 3333;

: 사용할 서버 포트번호 ex) 3333

 

 

http.createServer((req, res) => { // 서버를 생성한다.

// response 요청에 의한 콜백 함수
res.writeHead(200,{'Content-Type': 'text/plain'}); // 응답 헤더 중 Content-Type 설정
res.end('Hello World With egoing');                        // 응답 데이터 전송
})

// 서버를 요청 대기 상태로 만든다

.listen(port,hostname,() => { 
console.log('서버 실행 되었습니다 사용중인 포트 번호 : ' + port);
// 요청 대기가 완료되면 실행되는 콜백 함수

// 터미널에 로그를 기록한다
});

터미널

 

웹서버 실행

 

index.html 실행

 

위의 코드와 비슷하다.

 

fs 모듈의 경우 파일을 읽기 위한 모듈!

const http = require('http');
const fs = require('fs');

const hostname = '127.0.0.1';
const port = 3333;

var app = http.createServer((req, res) => {
    var url = req.url;

    if(req.url == '/'){
        url = '/index.html';
    }
    if(req.url == '/favicon.ico'){
        return res.writeHead(404);
    }

    res.writeHead(200);
    res.end(fs.readFileSync(__dirname + url));

    console.log('서버 실행 되었습니다 사용중인 포트 번호 : ' + port);
});

console.log("테스트 입니다.");
app.listen(port,hostname);

 

index.html은 현재 server.js파일과 동일한 디렉토리 안에 존재한다.

 

** 서버를 요청받을때 port, hostname 의 순서가 틀리지 않도록 유의...

 

res.writeHead(200,{'Content-Type''text/plain'});

위에서는 이러한 코드를 사용하였다. Head에 contentType을 명시 해줬었지만 이번 html 파일을 불러 올때는 이와 똑같이 사용한다면...

이와 같은 코드를 볼 수 있을 것이다.. html파일을 text형태로 변경시켰기 때문 ( text/plain ) 또한 한글 인코딩을 명시해줬지 않기 때문에 한글이 깨지져서 나온다.

 

res.end(fs.readFileSync(__dirname + url));

현재 실행중인 폴더 경로에 있는 url 을 실행 => index.html

__filename 은 현재 실행 중인 파일 경로
__dirname 은 현재 실행 중인 폴더 경로

정상적으로 실행 완료!!

728x90
반응형