npm install multer
postRoute.js
const multer = require("multer");
const path = require('path');
const fs = require('fs');
// Set up multer for file uploads
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'uploads/'); // Create an 'uploads' directory in your project
},
filename: (req, file, cb) => {
const fileName = 'post_' + Date.now() + path.extname(file.originalname);
cb(null, fileName);
},
});
const upload = multer({ storage });
Update Post Route
postRoute.post('/', verifyToken, upload.single('photo'),async (req, res) => {
try {
const { title, content, category } = req.body;
const photo = req.file ? req.file.filename : undefined;
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,photo });
await newPost.save();
res.status(201).json({ message: "Post Created" });
} catch (error) {
console.error(error);
res.status(500).json({ error: "Internal Server Error" });
}
});