아주 단순하지만, 서버로써 전혀 쓸모없는 틀만 만들어보기
http
패키지 사용const http = require("http");
const host = "localhost";
const port = 3000;
const server = http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html" });
res.end("<h1>Hello world</h1>");
});
server.listen(port, host, () => {
console.log("Server listen on <http://localhost:3000>");
});
아주 단순하게, 그저 조건문으로 분기처리하는 방식의 엔드포인트 생성하기
url
패키지 사용const http = require("http");
const url = require("url");
const host = "localhost";
const port = 3000;
const server = http.createServer((req, res) => {
const path = url.parse(req.url).pathname;
switch (path) {
case "/":
res.writeHead(200, { "Content-Type": "text/html" });
res.end("<h1>Home page</h1>");
break;
case "/post":
res.writeHead(200, { "Content-Type": "text/html" });
res.end("<h1>Post page</h1>");
break;
case "/user":
res.writeHead(200, { "Content-Type": "text/html" });
res.end("<h1>User page</h1>");
break;
default:
res.writeHead(404, { "Content-Type": "text/html" });
res.end("<h1>Not Found</h1>");
}
});
server.listen(port, host, () => {
console.log("Server listen on <http://localhost:3000>");
});
위 예시는 엔드포인트가 겨우 3개이지만,
모든 엔드포인트를 switch 문 내에 넣어두어야 하고, 가독성 또한 떨어짐