#node.js #reactjs #express #file-upload #undefined
Вопрос:
Я отправляю данные формы в своем приложении react, которое также включает файл. Однако, когда я пытаюсь получить доступ к req.файлам на моем экспресс-сервере, он всегда возвращает «Неопределенный». (Я проходил через подобные вопросы, но они не решают мою проблему) Вот мой код на стороне клиента
const AddCategory = () =gt; { const categoryName = useRef(""); const categoryImage = useRef(""); async function PostCategory(e) { e.preventDefault(); //checking file type and size categoryImage.current.files[0].type.slice(0, 5) != "image" ? alert("Only Images are acceptable") : categoryImage.current.files[0].size gt; 1024 * 1024 ? alert("Oversized Image File") : console.log("Continue"); let data = new FormData(); data.append('name', JSON.stringify(categoryName.current.value)); data.append('file', categoryImage.current.files[0]); let response = await fetch("AddCategory", { method: 'POST', body: data, header: { 'Content-Type': 'multipart/form-data', } }) } return ( lt;divgt; lt;NavigationBar /gt; lt;div className="jumbotron"gt; lt;h3gt;Add Categorylt;/h3gt; lt;/divgt; lt;div className="container"gt; lt;form onSubmit={(e) =gt; PostCategory(e)} id="AddCategory" className="text-alignment-left"gt; lt;Row className="mb-3"gt; lt;Form.Group as={Col} className="mb-3" controlId="formGridcategoryName"gt; lt;Form.Labelgt;Categorylt;/Form.Labelgt; lt;Form.Control ref={categoryName} type="text" required /gt; lt;/Form.Groupgt; lt;Form.Group as={Col}gt; lt;Form.Labelgt;Imagelt;/Form.Labelgt; lt;Form.Control ref={categoryImage} name="categoryImage" type="file" accept="image/*" required /gt; lt;/Form.Groupgt; lt;/Rowgt; lt;Button type="submit" variant="primary"gt; Add Category lt;/Buttongt; lt;/formgt; lt;/divgt; lt;/divgt; ) }
Вот мой код на стороне сервера
const express = require('express'); const bodyParser = require('body-parser'); const routesHandler = require('./routes/handlers.js'); const fileUpload = require('express-fileupload'); const app = express(); app.use(bodyParser.urlencoded({extended:false})); app.use(bodyParser.json()); app.use('/', routesHandler); app.use(fileUpload()) const PORT = 4000; app.listen(PORT, () =gt; { console.log(PORT); }) router.post("/AddCategory", (req, res) =gt; { console.log("Request Received"); console.log(req.files.file); });
Может ли кто-нибудь предположить, что происходит не так?