Это метод app.post в файле index.js, который получит имя файла, и я хочу проверить, существует ли изображение, тогда имя изображения будет добавлено в файл, иначе этого не произойдет.
app.post('/addPost', upload.single('blogImage'), (req, res) => {
//for the written content
let data = req.body;
data.blogImageName = req.file.filename;
console.info(data);
postContent(req.body);
});
Это html-форма
<form action = "/addPost" enctype = "multipart/form-data" method = "POST" class = "createPostForm">
<div>
<label for = "AddImage">Add Image for the blog : </label>
<input type = "file" name = "blogImage" ><br>
</div>
<input type = "submit" value = "Add Post">
</form>
если я отправлю форму без загрузки файла, выдаст ошибку.
Как я могу проверить, существует ли имя файла в запросе?
Для загрузки файла вам понадобится пакет multer или express-fileupload. Вы хотите знать только, как проверить, отправлен ли пользователь файл, или вы также хотите знать весь процесс проверки и загрузки файла? Укажите, пожалуйста,
Я хотел проверить на стороне сервера @JaromandaX
Я импортировал пакет multer. Я хочу проверить на стороне сервера, отправил ли пользователь изображение или нет. @Субха
@VedicaGairola, я опубликовал свой подробный ответ с объяснениями. Пожалуйста, проверьте и дайте мне знать ваш отзыв.
Файл существует: Просто хочу уточнить. Возможно, файл уже существует на сервере, поскольку он уже был кем-то загружен. Какие действия следует предпринять в таком случае. Другой момент, очевидный из ФП, заключается в том, что пользователь должен был загрузить файл до начала загрузки на сервер. Здесь необходимо сделать два момента. В этом случае возможны как внешняя, так и внутренняя проверка. Как бы вы увидели эти точки.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


добавить проверку
if (!req.file) { throw new Error("File is required"); }
return true;
Что ж, когда вы загружаете файлы с помощью multer, данные загруженного файла не сохраняются непосредственно в req.body, а multer прикрепляются file-data в request.file (для одного файла) и request.files (для нескольких/массивов файлов).
request.body содержит только text-fields.
Поэтому попробуйте этот код вместо существующего кода.
app.post('/addPost', upload.single('blogImage'), (req, res) => {
let fileData = req.file ;
if (!fileData) //return `true` in case file is not submitted
{
..... //you can redirect user or whatever you want
}
.....
//you can do rest of the work regarding file-upload
});
Для получения дополнительной информации о multer вы можете перейти по ссылке ниже.
ты хотел проверить на сервере или в клиенте, из твоего вопроса не понятно