๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[E-Commerce App with REST API] (12) Blog ์กฐํํ๊ธฐ (GET) & ๋ธ๋ก๊ทธ ์ญ์ ํ๊ธฐ (DELETE) ๋ณธ๋ฌธ
๐ฉ๐ป ๋ฐฑ์๋(Back-End)/Node js
[E-Commerce App with REST API] (12) Blog ์กฐํํ๊ธฐ (GET) & ๋ธ๋ก๊ทธ ์ญ์ ํ๊ธฐ (DELETE)
์ง์ง์ํ์นด 2023. 3. 30. 00:01728x90
๋ฐ์ํ
<๋ณธ ๋ธ๋ก๊ทธ๋ Developers Corner ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
=> Node.js E-Commerce App with REST API: Let's Build a Real-Life Example!
๐ท Blog ์กฐํํ๊ธฐ (+ update)
์กฐํํ ๋๋ง๋ค ์กฐํ ์ ๋์ด๋จ! numViews~~~ 0์์ ์ญ์ญ๊พธ์ญ~~
MongoDB์์๋ ๋์ด๋๋๊ฒ ์ ๋ฐ์ดํธ ๋จ~
๐ท ๋ชจ๋ Blog ์กฐํํ๊ธฐ
๐ท ๋ธ๋ก๊ทธ ์ญ์ ํ๊ธฐ
์ญ์ ํ id ๊ณจ๋ผ์ ์ญ์ !
์ญ์ ํ๊ธฐ ์ ์ admin ์ธ์ง ๊ฒ์ฆํ๊ธฐ
๐ท ์ฝ๋
โ controllers/blogCtrl.js
const Blog = require("../models/Blog");
const User = require("../models/User");
const asyncHandler = require("express-async-handler");
const { validateMongodbID } = require("../utils/validateMongodbID");
// ๋ธ๋ก๊ทธ ์์ฑํ๊ธฐ
const createBlog = asyncHandler(async (req, res) => {
try {
const newBlog = await Blog.create(req.body);
res.json(newBlog);
}
catch (error) {
throw new Error(error);
}
});
// ๋ธ๋ก๊ทธ ์์ ํ๊ธฐ
const updateBlog = asyncHandler(async (req, res) => {
const { id } = req.params;
validateMongodbID(id);
try {
const updateBlog = await Blog.findByIdAndUpdate(id, req.body);
res.json(updateBlog);
}
catch (error) {
throw new Error(error);
}
});
// ๋ธ๋ก๊ทธ ์กฐํํ๊ธฐ
const getBlog = asyncHandler(async (req, res) => {
const { id } = req.params;
validateMongodbID(id);
try {
const getBlog = await Blog.findById(id)
.populate("likes")
.populate("dislikes");
const updateViews = await Blog.findByIdAndUpdate(
id,
{
$inc: { numViews: 1 }, // ์กฐํํ ๋๋ง๋ค numViews ์ฌ๋ผ๊ฐ~
},
{ new: true }
);
res.json(getBlog);
}
catch (error) {
throw new Error(error);
}
});
// ๋ชจ๋ ๋ธ๋ก๊ทธ ์กฐํํ๊ธฐ
const getAllBlogs = asyncHandler(async (req, res) => {
try {
const getAllBlogs = await Blog.find();
res.json(getAllBlogs);
}
catch (error) {
throw new Error(error);
}
});
// ๋ธ๋ก๊ทธ ์ญ์ ํ๊ธฐ
const deleteBlog = asyncHandler(async (req, res) => {
const { id } = req.params;
validateMongodbID(id);
try {
const deleteBlog = await Blog.findByIdAndDelete(id);
res.json(deleteBlog);
}
catch (error) {
throw new Error(error);
}
});
module.exports = {
createBlog,
updateBlog,
getBlog,
getAllBlogs,
deleteBlog,
}
โ routes/blogRoute.js
const express = require("express");
const { createBlog, updateBlog, getBlog, getAllBlogs, deleteBlog } = require("../controllers/blogCtrl");
const { authMiddleware, isAdmin } = require("../middlewares/authMiddleware");
const router = express.Router();
router.post("/", authMiddleware, isAdmin, createBlog);
router.put("/:id", updateBlog);
router.get("/:id", getBlog);
router.get("/", getAllBlogs);
router.delete("/:id", authMiddleware, isAdmin, deleteBlog);
module.exports = router;
728x90
๋ฐ์ํ
'๐ฉโ๐ป ๋ฐฑ์๋(Back-End) > Node js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments