RECAP
1) package.json: node.js 관련 정보를 담는 방법 / 그냥 text -> 뭘 넣어도 상관 X
브라우저는 서버에게 페이지를 request(요청)하고 서버는 그에 대해 response(응답)한다. 만약 브라우저의 요청에 대해 서버가 return을 통해 응답하지 않으면 브라우저는 응답을 기다리기만 한다.
const app = express(); 을 통해 app에 express의 메서드, 기능 등 모든 걸 담고 app.get("route", controller);을 통해 브라우저와의 연결통로를 구축한다.
바닐라JS 때 add.eventListener와 함수를 연결해주는 것과 유사하게, 브라우저의 request를 받았을 때 서버로써 그에 대한 응답을 return해줄 const controller에 함수를 구성해준다. 일반적으로 (request, response)를 argument로 받고 무언가를 return해주는 화살표 함수를 구성하는 것으로 시작해준다.
쉽게, 무언가를 return하지 않고 next(); 를 통해 다음 함수로 연결해주는 controller를 middleware라고 한다. controller는 argument로 (request, response)만을 받는 반면 middleware는 next를 추가로 받는다. (req, res, next) 다만 어떤 조건에 해당하여 중간에 return하게 되면 그 middleware는 controller의 역할을 하게 되고, 다음 함수로의 연결은 끝난다.
Router
모든 Express 애플리케이션에는 앱 라우터가 내장되어 있습니다.
라우터는 미들웨어 자체처럼 작동하므로 app.use()에 대한 인수로 또는 다른 라우터의 use() 메서드에 대한 인수로 사용할 수 있습니다.
최상위 익스프레스 객체에는 새로운 라우터 객체를 생성하는 Router() 메서드가 있습니다.
Routing
https://expressjs.com/ko/guide/routing.html
정규표현식 테스트 사이트
https://www.regexpal.com
\w+: 모든 문자, 숫자 선택
\d+: 모든 숫자 선택