Мультер не заполняет req.файл независимо от того, что я делаю

#javascript #node.js #file-upload #multer

Вопрос:

Я буквально перепробовал все возможные решения проблемы, но ни одно из них не работает, интересно то, что я действительно могу получить доступ к req.body, но не могу получить доступ к req.файлу. Если у кого-то есть какая-либо идея, пожалуйста, поделитесь ею, спасибо.

форма:

 <form action="/books" method="POST" enctype="multipart/form-data">
    <label for="cover">Cover</label>
    <input type="file" id="cover" name="cover">
    <button type="submit">Create</button>
</form>
 

маршрутный манипулятор:

 const imageMimeTypes = ['image/jpeg','image/jpg','image/png', 'image/gif']
const upload = multer({
    dest: uploadPath,
    fileFilter(req, file, callback){
        if(imageMimeTypes.includes(file.mimetype)){
            return callback(null, true)
        }
        callback(new Error('the mimetype of the image is not valid'), null)
    }
})
router.post('/', upload.single('cover'), async (req, res) => {
    const book = new Book({
        title: req.body.title,
        author: req.body.author,
        publishDate: new Date(req.body.publishDate),
        pageCount: req.body.pageCount,
        description: req.body.description,
        coverImageName: req.file.filename
    })
    try {
      await book.save();
      res.redirect('/books')
    } catch (error) {
      renderNewPage(res, book, true)
  }
})
 

Комментарии:

1. Можете ли вы получить доступ file к методу filefilter? Кроме того, есть ли какие-либо ошибки, которые вы видите в консоли?

2. Где проходит ваш /books маршрут?