const http = require("http");
http.createServer((rep, res) => {
// createServer(callBack) : 서버를 만들며, .listen()으로 서버 요청을 함
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
// 서버의 형식을 다룸
res.write("<h1>hello<h1/>");
res.end(); // res에 있는 값들을 반환
})
.listen(3000, () => {
console.log("서버를 실행합니다.");
}); // 3000번 포트에서 서버를 요청, 성공시 callback 호출
: request로 요청을 받아오고, response로 응답을 처리해준다.
req.method : 요청 방법(REST)에 대한 값. 비교하여 처리
req.url : 요청하는 데이터의 url(key값)을 받아 각 url 별로 처리
const http = require("http");
const fs = require("fs").promises;
http.createServer(async (req, res) => {
try {
switch (req.method) {
case "GET": // 주소의 key값을 요청받아 웹서버에 페이지 형식으로 응답해줌
if (req.url === "/") {
const data = await fs.readFile("./about.html");
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
return res.end(data);
} else if (req.url === "/about") {
const data = await fs.readFile("./about.html");
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
return res.end(data);
}
try { // url이 없을 때의 예외처리이지만 없으면 요청을 계속 받으려 함
const data = await fs.readFile(`.${req.url}`);
return res.end(data);
} catch (err) {
// 주소에 해당하는 라우트를 못 찾았다는 404 Not Found error 발생
}
break;
case "POST":
break;
case "PUT":
break;
case "DELETE":
break;
default:
res.writeHead(404);
return res.end("NOT FOUND");
}
} catch (err) {
console.log(err);
}
})
.listen(3001, () => {
console.log("서버를 실행합니다.");
});