CRUD 작업이란 무엇입니까? 반응에서 CRUD 작업을 구축하는 방법은 무엇입니까?
크러드:
CRUD는 만들기, 읽기, 업데이트 및 삭제를 나타냅니다. CRUD는 일반적으로 데이터베이스에서 수행되는 작업을 나타냅니다. 응용 프로그램이 데이터베이스에 연결되면 데이터베이스에 데이터를 추가하고, 데이터를 읽고, 데이터를 업데이트하고 데이터를 삭제할 수 있는 CRUD 작업을 수행합니다.
만들기 — 데이터베이스에 레코드를 삽입합니다.
읽기 — 데이터베이스에서 레코드를 검색합니다.
업데이트 — 데이터베이스의 레코드를 업데이트합니다.
삭제 — 데이터베이스에서 레코드를 삭제하려면
CRUD 애플리케이션 구축 방법:
CRUD 작업을 생성하려면 먼저 반응 애플리케이션을 생성해야 합니다. React 애플리케이션을 생성하려면 터미널에
npx create-react-app <Your app name>
를 입력합니다.패키지가 설치되는 것을 볼 수 있습니다. 이 반응 프로젝트를 생성한 후 프로젝트 폴더로 이동하여 연 다음 터미널 및 명령
npm start
을 엽니다.이제 다음과 같은 기본 React 템플릿이 표시됩니다.
이는 반응 애플리케이션을 성공적으로 생성했음을 의미합니다.
이제 코드 편집기로 이동하여 app.js 파일을 엽니다. 다음과 같은 기본 상용구가 표시됩니다.
이제 우리는 서버를 위한 또 다른 프로젝트를 생성해야 합니다. 서버 환경을 설치하기 전에 컴퓨터에 node.js 소프트웨어를 설치해야 합니다.
이제 서버용 컴퓨터에 디렉토리를 생성하고 터미널에서 디렉토리를 열 수 있습니다. 이제 다음 단계에 따라 서버를 만들 수 있습니다.
package.json 파일의 scripts 속성에 다음 2줄을 삽입합니다.
"scripts": {
"start": "node index.js",
"start-dev": "nodemon index.js"
이제 프로젝트를 열고 index.js라는 파일을 만들고 필요한 다른 항목을 삽입합니다.
const express = require("express");
const { MongoClient } = require("mongodb");
require("dotenv").config();
const cors = require("cors");
const ObjectId = require("mongodb").ObjectId;
const app = express();
const port = process.env.PORT || 5000;
index.js
파일에서 미들웨어를 사용해야 합니다.app.use(cors());
app.use(express.json());
그런 다음 MongoDB 클러스터를 만들고
.env
파일을 입력하고 다음과 같이 index.js
파일에서 사용합니다.const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.qu1uq.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`;
이제 다음 코드와 같은 함수를 만들고 데이터베이스를 생성하고 데이터베이스에 연결합니다. try 블록에 모든 것을 씁니다.
async function run() {
try {
await client.connect();
const database = client.db("modernFurniture");
const productsCollection = database.collection("products");
const ordersCollection = database.collection("orders");
const usersCollection = database.collection("users");
const reviewsCollection = database.collection("reviews");
} finally {
// await client.close();
}
}
run().catch(console.dir);
CRUD 작업을 시작하겠습니다.
작업 만들기:
이제 일부 데이터를 가져오기 위한 HTML 입력 양식을 만들고 생성 작업을 위해 서버로 보냅니다.
우리는 Axios를 사용하고 후크 형식을 반응하여 서버에 데이터를 보냅니다. 터미널에 Axios 쓰기 명령을 설치하는 경우
npm i axios
및 반응 후크 양식을 설치하는 경우npm install react-hook-form
const AddProduct = () => {
const { register, handleSubmit, reset } = useForm();
const onSubmit = (data) => {
axios
.post("http://localhost:5000/products", data)
.then((res) => {
“Do something” }
});
};
이제 노드 서버에 포스트 API를 생성하여 데이터베이스에 데이터를 생성합니다.
app.post("/products", async (req, res) => {
const product = req.body;
const result = await productsCollection.insertOne(product);
res.json(result);
});
읽기 작업:
이제 클라이언트 측에 구성 요소를 만들고 브라우저에 표시할 모든 데이터를 가져오기 위해 서버에 요청을 보냅니다. 그리고 서버가 응답하면 데이터를 상태로 저장합니다. 그리고 UI에 데이터를 표시할 수 있습니다.
데이터베이스에서 데이터를 가져오기 위한 get 요청을 만듭니다.
const [products, setProducts] = useState([]);
useEffect(() => {
fetch("http://localhost:5000/products")
.then((res) => res.json())
.then((data) => setProducts(data));
}, []);
서버에서 브라우저로 데이터 보내기:
// GET API
app.get("/products", async (req, res) => {
const cursor = productsCollection.find({});
const products = await cursor.toArray();
res.json(products);
});
업데이트 작업:
기존 데이터를 추가로 업데이트해야 하는 경우 업데이트 작업에 사용합니다. 먼저 다음 코드를 사용하여 클라이언트 측에서 업데이트 요청을 생성합니다.
const user = { email };
fetch("http://localhost:5000/users/admin", {
method: "PUT",
headers: {
"content-type": "application/json",
},
body: JSON.stringify(user),
})
.then((res) => res.json())
.then((data) => {
"do something";
});
그런 다음 서버의 응답:
// make a admin user
app.put("/users/admin", async (req, res) => {
const user = req.body;
const filter = { email: user.email };
const updateDoc = { $set: { role: "Admin" } };
const result = await usersCollection.updateOne(filter, updateDoc);
res.json(result);
});
우리는 일반 사용자부터 관리자까지 위의 코드를 사용하도록 합니다.
삭제 작업:
데이터베이스에서 데이터를 삭제해야 하는 경우 삭제 작업을 사용합니다. 여기서 고객 주문을 삭제하려고 합니다.
const url = `http://localhost:5000/orders/${id}`;
fetch(url, {
method: "DELETE",
})
.then((res) => res.json())
.then((data) => {
if (data.deletedCount > 0) {
alert("Deleted!", "Your order has been deleted.", "success");
}
});
서버 응답:
// delete single order
app.delete("/orders/:id", async (req, res) => {
const id = req.params.id;
const query = { _id: ObjectId(id) };
const result = await ordersCollection.deleteOne(query);
res.json(result);
});
이제 서버 응답과 주문이 UI에서 삭제되고 데이터베이스에서도 삭제됩니다.
Reference
이 문제에 관하여(CRUD 작업이란 무엇입니까? 반응에서 CRUD 작업을 구축하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ruhulamin7/what-is-crud-operation-how-to-build-crud-operations-in-react-2k8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)