본문 바로가기
Web/Node.js

Node.js의 Core Module로 Http Server 만들기

by returnpie 2020. 8. 27.

Node.js의 Core Module로 Http Server 만들기

 

const http = require("http");

const server = http.createServer((request, response) => {
	console.log('My First Server');
});

server.listen(3000); //set port number!

Node.js의 Core Module인 http를 통해 기본적인 Http Server를 만들 수 있습니다.

 

Username을 입력받고 user.txt에 값을 저장하는 기능을 만들어 보겠습니다!

 

app.js

const http = require("http");
const requestListener = require("./routes");
const server = http.createServer(requestListener);

server.listen(3000);

routes.js

const fs = require('fs');
const requestListener = (req, res) => {
  const url = req.url;
  const method = req.method;
  
  if (url === "/") {
    res.setHeader("Content-Type", "text/html");
    res.write("<html>");
    res.write(
      '<head>
          <form action="/create-user" method="POST">
              <input type="text" name="user">
              <button type="submit">User 1</button>
          </form>
     	</head>'
    );
    res.write("</html>");
    return res.end();
  }
  
  if (url === "/users") {
    res.setHeader("Content-Type", "text/html");
    res.write("<html>");
    res.write("<head><ul><li>User 1</li></ul></head>");
    res.write("</html>");
    return res.end();
  }
  
  if (url === "/create-user" && method === "POST") {
    const body = [];
    req.on("data", (chunk) => {
      body.push(chunk);
    });
    return req.on("end", () => {
      const parsedBody = Buffer.concat(body).toString();
      const userInfo = parsedBody.split("=")[1];
      console.log(userInfo);
      fs.writeFileSync("user.txt", userInfo);
      res.statusCode = 302;
      res.setHeader("Location", "/");
      res.end();
    });
  }
};

module.exports = requestListener;

 

'Web > Node.js' 카테고리의 다른 글

Node.js / Express.js에서 Middleware란?  (0) 2020.09.01
Node.js / Express.js 소개  (0) 2020.09.01
Node.js 소개 및 설치 방법!  (0) 2020.08.24