백엔드/node.js

node.js 백엔드 맛보기 강의 영상 정리5.라우팅 분리

피스타0204 2023. 1. 15. 00:52

프로젝트가 커져 라우팅 할 경로가 많아지면 라우팅 분리가 필요해진다.

라우팅할 경로가 많아지면 app.js의 코드가 길어지므로 유지보수가 어려워 질 수 있으므로 route를 분리하기 위해 사용한다.

 

 

// "use strict"; //ECMAScript의 문법을 준수하겠다고 명시하는 것

https://wormwlrm.github.io/2018/10/03/What-is-the-difference-between-javascript-and-ecmascript.html

 

1. router를 분리할 폴더 만들기

2. 루트, 로그인 파싱 코드를 분리한 폴더에 복사해 넣음

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

3. 라우터 모듈을 변수에 저장해준다.

Router 인스턴스는 완전한 미들웨어이자 라우팅 시스템이며, 따라서 “미니 앱(mini-app)”이라고 불리는 경우가 많습니다.
출처 : express 공식문서

라우팅 메서드

https://velog.io/@bining/express-%EB%9D%BC%EC%9A%B0%ED%8C%85%EA%B3%BC-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

"use strict"; //ECMAScript의 문법을 준수하겠다고 명시하는 것

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

 

4. module.exports = router; 로 외부파일(app.js)과 연결한다.

"use strict"; //ECMAScript의 문법을 준수하겠다고 명시하는 것

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;
//외부로 내보내기

5. app.js에 가서 미들웨어(라우터) 등록

const home = require("./routes/home"); //이 경로에 있는 js를 읽어와줘 
app.use("/", home); //use -> 미들웨어 등록 메소드
//여기서는 router연결

6. 정리된 코드

"use strict"; 
//메인 파일

//모듈
const express = require("express");//require -> 경로 연결 메소드
const app = express();

const PORT = 3000;

//라우팅
const home = require("./routes/home"); //이 경로에 있는 js를 읽어와줘 

//view 세팅(앱 세팅)
app.set("views", "./views"); //현재 view 위치
app.set("view engine", "ejs"); //view 엔진 세팅

app.use("/", home); //use -> 미들웨어 등록 메소드
//여기서는 router연결

app.listen(PORT, function()
{
    console.log("서버 가동");
});

^app.js