Node.js

[NetNinja: Nodejs 강의] 4강 Requests & Responses

유호야 2023. 9. 28. 22:01
반응형

서버를 생성하고 html에서 응답을 보내는 방법을 배웠다! 

 

const http = require("http");
const server = http.createServer((req, res) => {
  console.log(req.url, req.method);
  //   console.log("request made");

  res.setHeader("Content-Type", "text/html");

  res.write("<h1>hello, I'M Korean</h1>");
  res.write("<h4>this is Korean.</h4>");
  res.write("<h4>this is Korean.</h4>");
  res.end();
});

server.listen(3000, "localhost", () => {
  console.log("listening for requests on port 3000");
});

 

 

HTML 파일 자체를 읽게 하기

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

const server = http.createServer((req, res) => {
  console.log(req.url, req.method);
  //   console.log("request made");

  res.setHeader("Content-Type", "text/html");

  //send an html file
  fs.readFile("./views/index.html", (err, data) => {
    if (err) {
      console.log(err);
      res.end();
    } else {
      //   res.write(data);
      res.end(data);
    }
  });
});

server.listen(3000, "localhost", () => {
  console.log("listening for requests on port 3000");
});

 

 

주소별로 다른 페이지로 보내기

readFile 메서드를 통해서 주소별로 다른 페이지로 이동하게 만들 수 있다

 

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

const server = http.createServer((req, res) => {
  console.log(req.url, req.method);
  //   console.log("request made");

  res.setHeader("Content-Type", "text/html");

  let path = "./views";
  switch (req.url) {
    case "/":
      path += "/index.html";
      break;
    case "/about":
      path += "/about.html";
      break;
    default:
      path += "/404.html";
  }

  console.log("path ======= " + path);

  //send an html file
  fs.readFile(path, (err, data) => {
    if (err) {
      console.log(err);
      res.end();
    } else {
      //   res.write(data);
      res.end(data);
    }
  });
});

server.listen(3000, "localhost", () => {
  console.log("listening for requests on port 3000");
});

 

 

301 Redirect 하는 방법

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

const server = http.createServer((req, res) => {
  console.log(req.url, req.method);
  //   console.log("request made");

  res.setHeader("Content-Type", "text/html");

  let path = "./views";
  switch (req.url) {
    case "/":
      path += "/index.html";
      res.statusCode = 200;
      break;
    case "/about":
      path += "/about.html";
      res.statusCode = 200;
      break;
    case "/about-you":
      res.statusCode = 301;
      res.setHeader("Location", "/about");
      res.end();
      break;
    default:
      path += "/404.html";
      res.statusCode = 404;
  }

  //send an html file
  fs.readFile(path, (err, data) => {
    if (err) {
      console.log(err);
      res.end();
    } else {
      //   res.write(data);
      res.end(data);
    }
  });
});

server.listen(3000, "localhost", () => {
  console.log("listening for requests on port 3000");
});

 

반응형