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 은 현재 실행 중인 폴더 경로
정상적으로 실행 완료!!
'개발노트 > Node.js' 카테고리의 다른 글
[NodeJS] express 프로젝트 생성 ( Side Project - 스터디 사라져서 중단... ) (0) | 2021.12.03 |
---|---|
[Node.JS] MySQL 모듈화 (0) | 2021.12.02 |
[Node.JS] ConnectionPool (0) | 2021.11.30 |
[Node.js] NPM (0) | 2021.09.23 |
[Node.js] Node.js와 Mysql 연동 에러 (Client does not support authentication protocol requested by server; consider upgrading MySQL client) (0) | 2021.06.14 |