☝️ 클라이언트-서버 간 통신 이해하기
// server/index.js
// 클라이언트(app.js)의 fetch 요청에 대한 서버 응답
// id를 요청 받으면 특정 영화의 정보를 보내줘야 한다.
// 라우터 경로의 변경 /:id/:mode 를 통해 path 방식 url 값을 가져올 수 있다.
app.get('/movies/:id', function(req, res) {
movies.filter(item => {
// path 방식을 사용하는 url의 경우 params를 통해서 값을 가져올 수 있음
// 받아오는 타입은 string이므로 number로 바꾸어야 한다.
return item.id === Number(req.params.id);
})
// console.log('받아오는 id의 타입: '+ typeof req.params.id);
// 존재하지 않는 id를 요청받았을 경우에는 404 에러(클라이언트 측 에러)로 응답한다.
if(/*받아오는 id가 실제 데이터 id와 같지 않다면*/) ...
// 성공했을 경우의 상태와 응답 메세지
})
// client/app.js
// 서버(server/index.js)에 데이터를 요청
// 첫 렌더링 시 서버에 데이터를 요청하고 받아온다.
componentDidMount() {
fetch('<http://localhost:3000/movies>')
.then(res => {
// 받아온 데이터 처리
return res.json();
})
.then(data => {
// json화된 데이터로 상태 변화
this.setState({ movies: data, currentMovie: mockMovie[0] })
})
}
참고) Semantic URL 관련 블로그
✌️ 클라이언트 마지막 테스트 케이스
2020년 11월 26일 TIL 보러 가기