스터디 공부: 라우터와 미들웨어 차이
app.use(express.json()) 사용의 목적 :
app.use() => Express.js 어플리케이션에 미들웨어를 추가하는 메서드
* app. use()
express.json()은 json데이터를 파싱하기 위한 내장 미들웨어인데, json형식의 요청 데이터를
파싱하여 JS 객체로 변환시켜줌. => 클라이언트의 JSON 형식의 요청을 서버에서 사용할 수 있게 해준다.
라우터
- 클라이언트 요청 경로(URI)에 따라서 적절한 함수를 호출하는 기능을 담당한다.
1.라우터는 클라이언트 요청 경로와 HTTP 메서드(CRUD)에 따라 적절한 핸들러 함수를 요청하여 처리한다.
2. 라우터는 웹어플리케이션의 라우팅을 관리하는 역할 수행.
라우팅: 클라이언트의 요청이 어떠한 경로로 들어왔을 때 그에 맞는 처리를 수행하는 것.
ex) post/api/sign-up 이라는 url 접근을 하면 회원 가입을 하게 해줌
node.js에서는 다양한 라우팅 모듈이 제공되는데 제일 많이 사용되는 것은 Express.js
const router = express.Router()를 통해 라우터 객체를 생성,
router.get(), router.post(), router.put(), router.delete() 등의 메서드를 사용하여
경로와 해당 메서드에 대한 핸들러 함수를 등록할 수 있게 해준다.
미들웨어
- 클라이언트의 요청이 서버에 전달되기 전에 실행이 되는 것
응답 객체에 대한 조작, 로깅, 에러 처리, 인증, 세션 관리 등 다양한 작업을 수행.
미들웨어 등록: app.use()로 라우터에 등록할 수 있다.
미들웨어는 요청과 응답 처리과정에 개입하여 공통적인 작업을 수행(전역적으로 적용)
=> 모든 요청과 응답 사이에서 다양한 작업을 수행하고 전역적으로 적용된다...(오지라퍼)
라우터는 클라이언트의 요청 경로에 따라 특정 처리를 담당하여 수행(특정 경로에 대한 처리)
=> 즉, 요청한 경로가 일치해야 실행이 된다 이거야....(개인주의)
=> 결국 비슷한 개념이지만 목적과 사용 방식에 차이가 있음