Я попытался создать форму, которая должна была отправлять файл в экспресс-бэкенд, но по какой-то причине в бэкэнде я не получаю данные при отправке формы.
При использовании console.info я получаю {} для req.body и undefined для sampleFile
Вот html-форма,
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8" />
<meta
http-equiv = "X-UA-Compatible"
content = "IE=edge" />
<meta
name = "viewport"
content = "width=device-width, initial-scale=1.0" />
<link
rel = "stylesheet"
href = "./styles/styles.css" />
<title>Upload </title>
</head>
<form
ref = "uploadForm"
name='uploadForm'
id = "uploadForm"
action = "http://localhost:4000/partners"
method = "post"
encType = "multipart/form-data">
<input
id = "upload" type='file' name = "input1"
placeholder = "Upload file" />
<button type = "submit">Submit</button>
</form>
</body>
</html>
А это экспресс-серверный маршрут, обрабатывающий почтовый запрос,
import express from 'express'
const app = express()
app.use(express.urlencoded({extended: true}))
app.post('/partners', async function (req, res) {
console.info(req.body, '>>>>>>>body')
console.info(req.files, '>>>>>>>files')
})
app.listen(4000, () => console.info('Server running on port 4000'))



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


Для обработки загрузки файлов вам нужен составной кодировщик для Express. Для этого вы можете использовать библиотеку промежуточного программного обеспечения Multer.
const express = require('express')
const multer = require('multer')
const upload = multer({ dest: 'uploads/' })
const app = express()
app.post('/partners', upload.single('partner'), function (req, res, next) {
// req.file is the `partner` file
// req.body will hold the text fields, if there were any
})
Я использовал пакет под названием xlsx для извлечения данных из файлов xlsx и csv, и он отлично работал 3 дня назад. А сейчас почему-то нет. Я использовал решение, данное в этом ответе stackoverflow.com/questions/74161255/…