Create Controller Step- 7
Step 7: -Create Controller
- Crete a new folder with name controllers
- Create a new file inside folder route with any name like teamMember.js
- 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:{} });
});