본문 바로가기
실천하기/한 입씩 먹는 홈페이지 만들기

09. 라우터로 복잡한 코드 분리하기 / express

by 한코코 2024. 3. 19.

코드가 길어지다보니 슬슬 헷갈리기 시작한다.

라우터로 코드를 분리해서 사용해보자.

라우터에 관한 설명은 아래를 참고하자.

 

https://hancoco.tistory.com/88

 

[220208] 라우터와 미들웨어, 매개변수 next, 라우터 매개변수

목록 1. 라우터와 미들웨어 2. 미들웨어 매개변수 next 3) 라우터 매개변수 미들웨어와 라우터의 정의 미들웨어는 양쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프

hancoco.tistory.com

https://hancoco.tistory.com/89

 

[220209] 라우터 2개 사용하기, 라우터를 폴더화 시키는 2가지 방법

목록 1) 라우터 2개 사용하기 2) 다른 파일에 있는 코드를 불러오기 3) 라우터를 폴더화 시키기 라우터에 미들웨어 2개 넣기 app.get('/join', (req,res,next)=>{console.log('join1'); next()}, (req,res)=>{console.log('join

hancoco.tistory.com

 

 


라우터를 server.js에 만들고 routes폴더 안에 index.js파일을 만들어 자질구레한 get,post함수를 모아놓았다.

폴더 구조는 이렇게 되어있다.

 

 

server.js

//라우터를 만드는 부분
//url을 지정하지 않아도 사용할 수 있는 미들웨어 use함수
//지정된 경로에 지정된 미들웨어를 고정시킴
app.use(router)

 

 

routes>index.js

const express = require('express')
const router = express.Router() //라우터 선언부분
const list = require('../public/dataBase');

//여기서는 app.get이 아니라 router.get이다
//홈 url의 요청에 index.html을 넘겨주는 app.get
router.get('/', (req, res) => {

...(내용생략)...

module.exports = router

 

 

router라고 내보냈으므로 server.js에서 router를 받아온다.

const router = require('./routes/index')

 

 

이러면 완성.

 

 

 


 

기왕 나눈김에 좀더 깔끔하게 나누어보았다.

 

 

 

 

 


routes > index.js

const express = require('express')
const router = express.Router()

// 새로 만든 라우터들 가져오기
const boardRouter = require('./board')
const userRouter = require('./user')

//app.get이 아니라 router.get을 사용하고 있다.
router.get('/', (req, res) => {...내용생략})

// 가져온 라우터들 사용한다고 알려주기
router.use('/board', boardRouter)
router.use('/user',userRouter)

//router 하나로 모아서 server.js로 내보냄
module.exports = router

 

 

 

routes > userRouter > index.js

const express = require('express')
const router = express.Router()

...내용생략

module.exports = router

 

 

 


나중에 라우터를 나누면 비효율적인점.

연결된 주소가 바뀌므로 나중에 하나하나 바꿔줘야한다.

그래서 보통은 프로그램 설계전에 라우터를 나눌것을 설계하고 진행한다.

나도 공부한느라 이러는거지, 안그랬으면 먼저 라우터를 나누고 시작했을것.

댓글