38
loading...
This website collects cookies to deliver better user experience
npx create-react-app <Your app name>
in your terminal.npm start
."scripts": {
"start": "node index.js",
"start-dev": "nodemon 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
fileapp.use(cors());
app.use(express.json());
.env
file and use it on your index.js
file like this.const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.qu1uq.mongodb.net/myFirstDatabase?retryWrites=true&w=majority`;
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);
npm i axios
, and for install react hook form 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” }
});
};
app.post("/products", async (req, res) => {
const product = req.body;
const result = await productsCollection.insertOne(product);
res.json(result);
});
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);
});