안녕하세요
리액트 - express 서버와 연결하기 본문
리액트 프로젝트를 만들었으면 html로 컴파일
npm run build // 프로젝트를 html 파일로 만들기
서버 만들기 앞서 package.json만들고 express 설치
npm init -y // default로 설정된 package.json 생성. -y는 'yes'를 의미한다.
npm install express // express 설치
epress 서버 만들기
const express = require("express");
const path = require("path");
const app = express();
app.listen(8080, function () {
console.log("listening on 8080");
});
리액트와 ajax 통신 환경 설정하기
npm install cors // cors 모듈 설치
app.use(express.json()); // 유저가 보낸 array/object 데이터를 출력하기 위함
var cors = require("cors"); // cors는 다른 도메인 주소끼리 ajax 요청을 주고받기 위해 필요한 브라우저 정책입니다.
app.use(cors());
특정 폴더(프로젝트의 build)의 파일을 static 파일로 전송하기
app.use(express.static(path.join(__dirname, "react-project/build"))); // 프로젝트위치/build
app.get("/", (요청, 응답) => {
응답.sendFile(path.join(__dirname, "react-project/build/index.html")); // 메인페이지('/')로 접속하면 html파일을 보내주세요.
});
서버는 특정 url로 접속하면 html을 보내주는 역할을 합니다. (API)
서버가 /product로 GET요청을 하면 DB에서 데이터를 받아와 보내주는 API 만들기
app.get("/product", (요청, 응답) => { // '/product'로 ajax 이용해서 GET 요청을 보내면 됩니다.
응답.json({ name: "uriri" });
});
react router로 라우트 기능을 하려면
server.js 가장 아래에 위치해야합니다.⭐
app.get("*", (요청, 응답) => { // "*" 어떤 url을 접속하든
응답.sendFile(path.join(__dirname, "react-project/build/index.html")); // index.html 을 띄워주세요
});
'스터디 > 코딩애플' 카테고리의 다른 글
MongoDB - 서버를 만들어 GET POST 해보자 (0) | 2022.12.30 |
---|---|
MongoDB - Node.js, 요청방식, API, REST API (0) | 2022.12.30 |
리액트 - useTransition() 후순위처리, UX향상 (0) | 2022.12.26 |
리액트 - memo, useMemo : 고비용 함수 처리 (0) | 2022.12.24 |
리액트 - Lazy Load : 컴포넌트 로딩 분리하기 (0) | 2022.12.24 |