Node.js

[NetNinja: Nodejs 강의] 6강 Express

유호야 2023. 9. 29. 18:06
반응형

server.js

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

const server = http.createServer((req, res) => {
  // lodash
  const num = _.random(0, 20);
  console.log(num);

  const greet = _.once(() => {
    console.log("hello");
  });

  greet();
  greet();

  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-aaa":
      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(3001, "localhost", () => {
  console.log("listening for requests on port 3000");
});

 

 

위 코드를 

express 를 이용해서 간단하게 구현할 수 있게 됐다

 

app.js 

const express = require("express");
// express app
const app = express();

//listen for request
app.listen(3000);
app.get("/", (req, res) => {
  //   res.send("<h2>Home Page</h2>");
  res.sendFile("./views/index.html", { root: __dirname });
  //write과 다르게 자동적으로 텍스트 타입을 정해준다.
});

app.get("/about", (req, res) => {
  // res.send("<h2>About Page</h2>");
  res.sendFile("./views/about.html", { root: __dirname });
});

app.get("/about-us", (req, res) => {
  res.redirect("/about");
});


// 가장 아래에 작성해야 한다
app.use((req, res) => {
  res.status(404).sendFile("./views/404.html", { root: __dirname });
});
반응형