yarn add express
// server/server.js
const express = require('express');
const app = express();
const api = require('./routes/index');
const cors = require('cors');
app.use(cors());
app.use('/api', api);
const PORT = 3001;
app.listen(PORT, () => console.log('Node.js Server is running on port 3001'));
서버 생성 코드이다. 포트번호는 충돌을 피하기 위해 3001번으로 할당하였으며 '/api'의 경로 요청을 라우팅해주었다.
// server/routes/index.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send({ title: 'hello react!' });
});
module.exports = router;
yarn add http-proxy-middleware
// src/setupProxy.js
const proxy = require('http-proxy-middleware');
module.exports = function (app) {
app.use(
proxy('/api', {
target: 'http://localhost:3001/',
})
);
};
설정된 프록시는 클라이언트 사이드에서 Node.js 서버 사이드인 http://localhost:3001/api
로의 요청을 처리하여 서버 데이터를 가져올 수 있도록 해준다.
- 서버 사이드 : node ./server/server.js
- 클라이언트 사이드 : yarn start
useEffect(() => {
axios.get('http://localhost:3001/api').then((res) => {
console.log(res);
});
});
! cors에러 발생 : yarn add cors로 모듈 설치 후 server.js에 아래 코드 추가
// server.js const cors = require('cors'); app.use(cors());