i am using multer storage and its working fine but the error here when the input fields is empty it keeps sending "File has been uploaded" , what i want to make when the request files is undefined or null it returns "Fields is empty" other than that it checks if its an image or pdf file
const uploadFiles = async (req, res) => {
try {
await upload(req, res);
console.log(req.files);
if (req.files == undefined) {
return res.send({message : "Fields is Empty"})
}
if (req.files !== undefined) {
if (req.files.bookCover[0].fieldname == "bookCover" && req.files.bookCover[0].bucketName != 'photos' ) {
return res.send({ message: "Please Upload an Image" })
}
if (req.files.bookFile[0].fieldname == "bookFile" && req.files.bookFile[0].bucketName != 'pdf') {
return res.send({ message: "Please Upload a PDF File" })
}
}
res.send({ message : "File has been uploaded. "})
} catch (error) {
console.log(error);
return res.send({ message : "Error Uploading the File !"})
}
}
it keeps giving me this error Cannot read properties of undefined (reading '0') so i wrapped them inside another if statement if fields is not undefined it checks if its an image or pdf file uploaded
but its not working
This is the fix i made thank to @CherryDT
try{
await upload(req, res);
console.log(req.files);
if (!req.files.bookCover ) {
return res.send({ message: "Book Cover is Empty" });
} else if (!req.files.bookFile) {
return res.send({ message: "Book File is Empty" });
}
else {
if (req.files.bookCover?.[0].fieldname == "bookCover" && req.files.bookCover?.[0].bucketName != 'photos' ) {
return res.send({ message: "Please Upload an Image" })
}
if (req.files.bookFile?.[0].fieldname == "bookFile" && req.files.bookFile?.[0].bucketName != 'pdf' ) {
return res.send({ message: "Please Upload a PDF File" })
}
}
res.send({ message: "File has been uploaded. " })
}
catch (error) {
console.log(error);
return res.send({ message : "Error Uploading the File !"})
}