안녕하세요
프로젝트(1) - React 서버 구현 본문
REACT로 서버 구현
express 설치하기
$ npm i express
cors 설치하기
$ npm install cors
nodemon 설치하기 (저장할 때마다 자동으로 서버를 재실행 해서 편리해짐)
$ npm i -g nodemon그리고나서 nodemon concurrently를 설치해줍니다. (필요하다면)npm install nodemon concurrently --save-dev , "server": "nodemon server", "client": "npm start", "dev": "concurrently --kill-others-on-fail \"npm run server\" \"npm run client"
const express = require("express");
const path = require("path");
const app = express();
const PORT = 8080;
app.listen(PORT, () => {
console.log(`${PORT} 포트 서버 실행됨.`);
});
// 서버가 GET요청을 하면 DB에서 데이터를 받아와 보내주는 API 만들기
app.get("/", (요청, 응답) => {
응답.sendFile(path.join(__dirname, "build/index.html")); // 메인페이지('/')로 접속하면 html파일을 보내주세요.
});
// '/product'로 ajax 이용해서 GET 요청을 보내면 됩니다.
app.get("/product", (요청, 응답) => {
응답.json({ name: "uriri" });
});
react-router 설치하기
$ npm install react-router-dom@6
axios 설치하기
$ npm i axios
redux toolkit 설치하기
$ npm install @reduxjs/toolkit react-redux
https://sakuraop.tistory.com/395
googleapis (api 라이브러리) 설치하기
$ npm install googleapis --save
Form에서 전달 받은 값 이용하기
값을 가져오려면 상단에 추가
app.use(express.urlencoded({extended: true}))
https://sakuraop.tistory.com/406
리액트 .env 환경변수파일 이용하기
npm install --save dotenv
require("dotenv").config();
console.log(process.env.REACT_APP_API_KEY);
server로 POST하여 데이터 보내기
<div onClick={() => axios.post("http://localhost:8080/add", { todo: "todo" })
.then((res) => console.log(res))}>POST</div>
app.post("/add", (req, res) => {
res.send("sent");
console.log(req.body);
});
server에서 GET하여 DB 데이터를 가져오기
const [testWord, setTestWord] = useState("");
<div
onClick={() =>
axios
.get("http://localhost:8080/list")
.then((res) => setTestWord(res.data.test))
.then((res) => console.log(testWord))
}
>
Get testWord
</div>
{testWord.length ? <div>{testWord.map((el) => el.name)}</div> : "list"}
app.get("/list", (요청, 응답) => {
// 모든 데이터 가져오기
db.collection("post")
.find()
.toArray((에러, 결과) => {
console.log(결과);
응답.send({ test: 결과 });
});
});
'유튜브컨텐츠탐색-StelLife > Node.js' 카테고리의 다른 글
Node.js 환경에서 ES6 문법 사용 시 __dirname 절대경로 가져오기 (2) | 2023.02.20 |
---|