
256
한 권으로 끝내는 Node & Express
module.exports = app => {
app.get(‘/’, (req,res) => app.render(‘home’))
//...
}
있는 그대로 잘라 넣기만 하면 문제가 생깁니다. 예를 들어 새 콘텍스트에서 사용할 수 없는 변
수나 메서드를 사용하는 인라인 라우트 핸들러가 있었다면, 이렇게 이동할 때 참조가 끊어집니
다. 필요한 임포트 역시 옮길 수 있긴 하지만 잠시 기다리세요. 곧 핸들러를 자신만의 모듈로
옮길 때 참조 문제도 함께 해결됩니다.
그러면 라우트는 어떻게 연결할까요? 간단합니다.
meadowlark
.
js
에서 다음과 같이 라우트를
임포트하면 됩니다.
require(‘./routes’)(app)
아니면 다음과 같이 더 명시적으로 임포트에 이름을 붙일 수도 있습니다.
addRoutes
라는 이름
은 함수라는 걸 좀 더 잘 드러낸다고 생각했기에 이름을 이렇게 붙였습니다. 파일의 이름도 이
런 식으로 붙여도 됩니다.
const addRoutes = require(‘./routes’)
addRoutes(app)
14.8
핸들러의 논리적 그룹
라우트 핸들러에 이름 붙은 함수를 사용하라는 첫 번째 원칙을 준수하려면 핸들러를 넣을 곳이
필요합니다. 극단적으로 생각하면 핸들러 하나에 자바스크립트 파일 하나를 쓸 ...