MERN

⌘K
  1. Home
  2. Docs
  3. MERN
  4. BlogPost

BlogPost

মডেল বানাই

const mongoose = require('mongoose');

const PostSchema = new mongoose.Schema({
  title: { type: String, required: true },
  body: { type: String, required: true },
  username: { type: String, required: true },
  category: { type: Array, required: true },
  photo: { type: String, required: false },
  timestamp: { type: Date, default: Date.now },
});

const Post = mongoose.model('Post', PostSchema);

module.exports = Post;

ব্যাখ্যা :

প্রথমে ইম্পোর্ট export করি


const postRoute = require("express").Router();

const verifyToken = require("../middleware/tokenverify");
const Post = require("../models/postmodels");
const User = require("../models/userModels");

// Create a post
postRoute.post('/',verifyToken,async(req,res)=>{

});

// Get All Post
postRoute.get("/",async(req,res)=>{

});

// Get Single Post

postRoute.get("/:id",async(req,res)=>{

});

// Update A Post
postRoute.put("/:id",verifyToken,async(req,res)=>{

});

// Delete A Post
postRoute.delete("/:id",verifyToken,async(req,res)=>{

});


module.exports = postRoute;

const postRoute = require('./routes/postRoute');
app.use("/api/post",postRoute);

postRoute.post('/', verifyToken, async (req, res) => {
    try {
        const { title, content, category } = req.body;
        const userId = req.userId;

        let username = "admin";  // Default username in case user is not found

        if (userId) {
            // If userId is available, try to get the username from the user
            const user = await User.findById(userId);
            if (user) {
                username = user.username;
            }
        }

        const newPost = new Post({ title, content, username, category });
        await newPost.save();
        res.status(201).json({ message: "Post Created" });
    } catch (error) {
        console.error(error);
        res.status(500).json({ error: "Internal Server Error" });
    }
});

// Get All Post
postRoute.get("/", async (req, res) => {
    try {
        const posts = await Post.find();
        res.status(200).json(posts);
    } catch (error) {
        console.error(error);
        res.status(500).json({ error: "Internal Server Error" });
    }
});

// Get Single Post

postRoute.get("/:id", async (req, res) => {
    try {
        const postId = req.params.id;
        const post = await Post.findById(postId);

        if (!post) {
            return res.status(404).json({ error: "Post not found" });
        }

        res.status(200).json(post);
    } catch (error) {
        console.error(error);
        res.status(500).json({ error: "Internal Server Error" });
    }
});

// Update A Post
postRoute.put("/:id", verifyToken, async (req, res) => {
    try {
        const postId = req.params.id;
        const { title, content, category } = req.body;

        const updatedPost = await Post.findByIdAndUpdate(
            postId,
            { title, content, category },
            { new: true } // Return the updated document
        );

        if (!updatedPost) {
            return res.status(404).json({ error: "Post not found" });
        }

        res.status(200).json(updatedPost);
    } catch (error) {
        console.error(error);
        res.status(500).json({ error: "Internal Server Error" });
    }
});

postRoute.delete("/:id", verifyToken, async (req, res) => {
    try {
        const postId = req.params.id;
        const deletedPost = await Post.findByIdAndDelete(postId);

        if (!deletedPost) {
            return res.status(404).json({ error: "Post not found" });
        }

        res.status(200).json({ message: "Post deleted successfully" });
    } catch (error) {
        console.error(error);
        res.status(500).json({ error: "Internal Server Error" });
    }
});

How can we help?