API들 따로 분리하기

gotcha!!·2024년 2월 12일
0

Nodejs

목록 보기
10/11
post-thumbnail

개발을 하다보면, server.js 파일에 app.get(), app.post()이런 코드가 너무 많아져서 지저분했었다.
이걸 한 파일에 길게 적어넣으면 나중에 찾아 수정하기가 어렵기 때문에 API들을 다른 파일로 쪼개놓는 것도 좋은 방법이다.

app.get('/shop/shirts', (req, resp) => {
  resp.send('셔츠 파는 페이지입니다')
})

app.get('/shop/pants', (req, resp) => {
   resp.send('바지 파는 페이지입니다')
})  

예를 들어 두 API가 있을 때, 어떻게 따로 보관할까

보관하기

먼저 API가 웹페이지로 보내는 역할을 하는 경우를 라우트라 부르기에, routes라는 폴더를 하나 만들었다.
그리고 shop.js로 작성한 코드들을 뺴주었다.



(shop.js)

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


router.get('/shop/shirts', (req, resp) => {
  resp.send('셔츠 파는 페이지입니다')
})

router.get('/shop/pants', (req, resp) => {
   resp.send('바지 파는 페이지입니다')
})  

module.exports = router 
  1. 셋팅용으로 router라는 변수를 만든다.
  2. app.~ 코드들을 router.~ 코드 로 변경한다.
  3. export 해준다.

자바스크립트로 코드를 짤 때 다른 파일로 코드를 뺴고 싶으면 export/import moudel.export/ require문법을 사용한다.

이렇게 export한 파일을

server.js 에서 사용하고 싶을 땐

server.js

app.use('/', require('./routes/shop.js') )

미들웨어식으로 사용하면 된다.

URL 단축하기

shop.js 에서 shop이라는 공통 URL이 존재했었다.
이걸 줄이는 방법도 있는데

(shop.js)

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


router.get('/shirts', (req, resp) => {
  resp.send('셔츠 파는 페이지입니다')
})

router.get('/pants', (req, resp) => {
   resp.send('바지 파는 페이지입니다')
})  

module.exports = router 


server.js

app.use('/shop', require('./routes/shop.js') )

이렇게 작성해두면 URL을 단축할 수 있다.
이렇게 작성해두면 app.use가 많을 때, 이건 shop과 관련된 라우트라고 구분이 쉬워지는 장점도 있다.

profile
ha lee :)

0개의 댓글