Create Controller Step- 7

Create Controller Step- 7

Step 7: -Create Controller

  1. Crete a new folder with name controllers
  2. Create a new file inside folder route with any name like teamMember.js
  3. For File Uploading use the following in config.env
    • FILE_UPLOAD_PATH=./public/uploads
    • MAX_FILE_UPLOAD=1000000
    • Install npm I express-fileupload
    • Use  following in server file
      • const fileupload = require(‘express-fileupload’);
      • app.use(fileupload()); //File upload
      • app.use(express.static(path.join(__dirname,’public’))); //static folder
      • const path= require(‘path’);
const ErrorResponse= require('../util/errorResponse')
const asyncHandler =require('../middleware/async')
const teamMember= require('../models/teamMember');
const path= require('path');

// @desc        Create team Members
// @route       POST /api/create
exports.createMember= asyncHandler(async(req,res,next)=>{
    if(req.files)
    {
    const file=req.files.image;
    //create custom file name
    let filename=`team_${req._id}${path.parse(file.name).ext}`;
    file.mv(`${process.env.FILE_UPLOAD_PATH}/${file.name}`,async err=>{
        if(err)
        {
            console.error(err);
            return next(new ErrorResponse(`problem with file upload`),500)
        }
    })
    req.body.image = filename;
    }
    console.log(req.body);
    const member=await teamMember.create(req.body);
     res.status(201).json({success:true,data:member})
});

// @desc        Read team Members
// @route       GET /api/readAllMembers
exports.getAllMembers=asyncHandler(async(req,res,next)=>{
        const member = await teamMember.find();
        res.status(200).json({success:true,count:member.length,data:member});
});

// For Paging
/*exports.getAllMembers=asyncHandler(async(req,res,next)=>{
        res.status(200).json(res.advancedResult)
});*/


// @desc        Read team Member
// @route       GET /api/readSingleMember
exports.readSingleMember=asyncHandler(async(req,res,next)=>{
        const member = await teamMember.findById(req.params.id);
         if(!member)
        {
          return next(new ErrorResponse(`Member not found with id of ${req.params.id}`,404));
        }
        res.status(200).json({success:true,count:member.length,data:member});
});

// @desc        Update team Member
// @route       PUT/api/updateSingleMember
exports.updateSingleMember=asyncHandler(async (req,res,next)=>{
        const member = await teamMember.findByIdAndUpdate(req.params.id,req.body,
            {
             new:true,
             runValidators:true   
            });
        if(!member)
        {
             return next(new ErrorResponse(`Member not found with id of ${req.params.id}`,404));
        }
        res.status(200).json({success:true,data:member });
       });

// @desc        Delete team Member
// @route       DELETE /api/deleteSingleMember
exports.deleteSingleMember=asyncHandler(async(req,res,next)=>{
        const member = await teamMember.findByIdAndDelete(req.params.id);
        if(!member)
        {
           return next(new ErrorResponse(`Member not found with id of ${req.params.id}`,404));

        }
        res.status(200).json({success:true,data:{} });
       });

Post Your Comments & Reviews

Your email address will not be published. Required fields are marked *

*

*