I have a restApi of registerUser which creates the user but the issue is that when I target my Api my avatar image cannot upload to the cloudinary so when its not upload to the cloudinary so no public_id and secure_url generate so beacause of this my backend generates an error
:typeerror::cannot convert the undefined or null to object.
I cant find any solution
here is my my Rest Api
const catchAsyncError = require("../middleware/catchAsyncError");
const ErrorHandler = require("../utils/errorhandler");
//const ErrorHandler = require("../middleware/error.js");
const User=require("../models/userModel");
const sendToken=require("../utils/Jwttoken");
const sendEmail=require("../utils/sendEmail")
const crypto=require('crypto')
const cloudinary=require("cloudinary").v2;
exports.registerUser = catchAsyncError(async (req, res, next) => {
console.log("B1");
console.log(req.body.avatar);
let myCloud
myCloud = await cloudinary.uploader.upload(req.body.avatar, {
folder: avatars,
width: 150,
crop: "scale",
});
/*let myCloud= [];
let PID;
let PURL;
if(req.body.avatar.length > 100){
myCloud = await cloudinary.v2.uploader.upload(req.body.avatar,{
folder:"avatars",
width:750,
crop:"scale",
})
}
if(req.body.avatar.length > 100){
PID = myCloud.public_id;
PURL = myCloud.secure_url;
}
else{
PID = "HelloGuys"
PURL = req.body.avatar;
}*/
console.log("B2");
const { name, email, password } = req.body;
console.log(name);
console.log(email);
console.log(password);
const user = await User.create({
name,
email,
password,
avatar:{
public_id:myCloud.public_id,
url:myCloud.secure_url
}
});
console.log("B3");
sendToken(user, 201, res);
});