라우팅 분리


1. 라우팅 분리


뷰처럼 라우팅도 분리해줄 것이다.

다음, 폴더와 파일을 다음과 같이 만들고 코드를 수정한다.

Untitled

index.js


"use strict";

const express = require("express");
const router = express.Router();

router.get("/", (req, res) => {
  res.render("home/index");
});
router.get("/login", (req, res) => {
  res.render("home/login");
});

module.exports = router;

app.js


"use strict";

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

const PORT = 3000;

//라우팅
const home = require("./routes/home");

//앱 세팅
app.set("views", "./views");
app.set("view engine", "ejs");

app.use("/", home); //미들웨어 등록

app.listen(PORT, () => {
  console.log("서버 실행");
});

require() 내부 경로를 폴더로 설정했는데도 인식이 잘 되는 이유:

require()는 경로가 폴더로 설정되었을 경우 내부의 index.js를 실행하는 특별한 처리과정을 거치게 된다. index.js에서는 주로 해당 폴더 내 여러 js 모듈을 가져오고, 이를 객체로 묶은 뒤 하나의 모듈로 보내는 역할을 담당한다. 즉, 폴더 내 index.js를 활용하여 여러 파일의 모듈을 한 번의 require만으로 가져올 수 있다.

[NodeJS] require()와 module.exports

http://localhost:3000/login

http://localhost:3000/

잘 작동하는지 확인한다.