when I try to upload files using formidable its works fine. but suppose mongoose validation failed user not registered but file uploaded successfully .I need to do something like when user not created file not uploaded .here I put screenshot of my file upload module
userController.register= async(req,res)=>{
// const uploadFolder = path.join(__dirname, "../","public", "profilePic");
try {
let form = new formidable.IncomingForm();
form.multiples = true;
form.maxFileSize = 50 * 1024 * 1024; // 5MB
form.uploadDir = uploadFolder;
form.keepExtensions = true;
form.parse(req, async(err, fields,files) => {
try {
if(err) return res.status(400).send({message:err.message});
let salt = bcrypt.genSaltSync(10);
let hash = bcrypt.hashSync(fields.sPassword, salt);
delete fields.sPassword;
fields.sHash=hash;
let user = await User.create(fields);
if (!files.sPhoto.length) {
if(!user) {
return res.status(400).send({message:"User not created"});
}
const file = files.sPhoto;
fs.renameSync(file.filepath, path.join(uploadFolder, file.originalFilename));
user.sPhoto = file.originalFilename;
} else {
// Multiple files
}
await user.save();
return res.status(200).send({message:"Registerd successfully"});
}catch (error) {
errorHandler(req,res,error);
}
});
} catch (error) {
errorHandler(req,res,error);
}
};