Express JS - router 속 미들웨어
코드 구조화를 하면서 엔드포인트를 router를 이용하여 분리하였습니다.
기존에는
app = express()
app.get('/users/signup' , async(req,res) => {내용}
이렇게 작성했다면
파일을 여러개로 분리하여
index.js 파일에
const userRouter = require('./userRouter')
const router = express.Router()
router.use('/users', userRouter)
userRouter.js 파일에는
const router = express.Router()
router.post('/signup', userController.signUp)
이런식으로 파일을 분리하여 엔드포인트를 지정해 주었습니다.
사실 이것이 코드 전체를 보면서 이야기하면 더 간단하다고 생각이 되는데 그런 상황을 만들기 쉽지 않으니... 예시 코드들을 찾아서 확인하고 연습해야할 것 같습니다.
간단히 요약하자면 module export와 import를 이용하여 다른 파일에서 데이터를 불러오는 방식으로 생각하시면 됩니다.
그리고 Router 안에 미들웨어를 사용하는 방식 또한 같은 방식입니다.
엔드포인트가 있는 router 안에 필요한 미들웨어를 넣고 싶다면?
함수가 있는 파일을 import하고 엔드포인트 옆에 미들웨어를 추가하면 됩니다.
router.post('/signup', '미들웨어 이름',userController.signUp)
대신 중요한 것은 미들웨어가 있는 함수? 마지막에는 꼭 next() 함수를 넣어서 진행해야합니다.
그렇지 않다면 미들웨어 검사만하고 req를 받을 수 없게 될 수도 있습니다....
참 이게 저의 코드를 보여드리고 싶은데 어떻게 해야할지 감이 안옵니다. 너무나도 저의 코드가 궁금하시다면 댓글 달아주세요 ㅎㅎ