React와 Nodejs(express)를 연동
React
1. React => create-react-app 을 통해 환경을 편하게 구성 가능
2. create-react-app 작업할곳이름
3. 지정한 폴더로 이동하면 다음과 같이 환경구성이 끝났음을 알 수 있다.
4. npm start 를 통해 실행되는지 확인
Nodejs(express)
express framework를 이용하여 backend 환경을 구성
React 내에서 연동하기 위해 폴더를 나누어 사용한다.
서버 사용을 위한 폴더내에 라우더 폴더/index.js 를 생성하고, 라우팅을 위한 server.js를 생성한다.
기본 환경 구성
React는 기본적으로 3000번 포트를 사용하도록 설정되어 있기 때문에,
server단은 3001번 포트로 설정해주었다.
server.js
index.js
서버실행을 편하게 하기위해 script를 추가해준다.
서버가 작동하는지 확인
** script를 사용하는 명령어는 'run'을 꼭 사용해야한다.
다음과 같이 잘 작동하는 것을 확인할 수 있다.
서버 사용팁
클라이언트의 경우 코드를 수정하고 저장하면 수정된 코드까지 포함하여 처음부터 페이지에 렌더링된다.
즉 바로바로 작동하게 되는데,
위와 같이 서버를 사용하면 코드를 수정 후 저장하여도 재작동하지 않아서 서버를 끈 후에 다시 실행해야 한다.
이 불편함을 해결하는 것이 nodemon 이다.
nodemon을 설치하고,
script의 node를 nodemon으로 수정한다.
앞으로 서버단의 코드를 변경하면 재작동하게 되어 편하게 사용할 수 있다.
Proxy
위까지 환경을 구성했어도, 당장 클라이언트와 서버사이는 통신이 불가능하다.
proxy는 클라이언트와 서버 사이의 네트워크 통신을 '대리'로 수행하는 미들웨어이다.
Proxy 설치
proxy 설정을 위한 js를 src폴더에 생성
cross-origin resource sharing(CORS)
일반적으로 하나의 페이지는 보안상 같은 포트를 사용하는 페이지에서만 접근할 수 있도록 구성(CORS)되어 있다.
현재 구성한 포트는 3000, 3001번 이므로 서로 데이터에 접근하게 되면 CORS를 위배하여 오류가 발생한다.
Nodejs에서는 이를 해결하기 위해 cors 모듈을 제공한다.
CORS 설치
server.js 에 cors 코드를 삽입
여기까지하면 React와 NodeJs(express)의 연동이 끝난다.
클라이언트와 서버가 데이터를 주고받는 방법은 여기!에서 포스팅하겠다.
'web > React' 카테고리의 다른 글
CSS 단위(responsive Units) (0) | 2020.09.16 |
---|---|
React Hook (0) | 2020.09.15 |
fetch request 비동기통신 (0) | 2020.09.01 |
바벨(babel) (0) | 2020.08.22 |
createElement 이해하기 (0) | 2020.08.22 |