#node.js #reactjs #multer
#node.js #реагирует на #мультер
Вопрос:
Я пытаюсь отправить форму с несколькими изображениями, чтобы я мог сохранить ее в базе данных mysql. Моя форма выглядит так
import React from 'react'; import axios from 'axios' export const Imageupload = ()=gt; { const[File,setImageFiles] = React.useState(null) const[firstName,setFirstName] = React.useState(null) const[lastName,setLastName] = React.useState(null) const upload = ()=gt; { if (File) { console.log(File) var formData = new FormData(); formData.append('firstname', firstName); formData.append('lastname', lastName); formData.append('fileslist', File); var options = { firstname:firstName, lastname:lastName, fileslist:File, } try { const res = axios.post('/students/imgUpload', formData); } catch (err) { if (err) { console.log(err); } } } else { console.log("Please enter all fields"); } } return( lt;gt; lt;form encType="multipart/form-data"gt; lt;input name="firstName" onChange={(e)=gt;setFirstName(e.target.value)} placeholder="enter first name"/gt; lt;input name="lastName" onChange={(e)=gt;setLastName(e.target.value)} placeholder="enter last name"/gt; lt;input type="file" name="ourimage" onChange={(e)=gt;setImageFiles(e.target.files[0])}/gt; lt;button onClick={upload} type="button"gt;submitlt;/buttongt; lt;/formgt; lt;/gt; ) }
но когда я регистрирую запрос на узле js, я получил этот ответ, в котором файлы находятся в теле запроса, но они должны быть в файлах запроса однако req.файлы пусты
Я использую мультер и анализатор тела следующим образом
const bodyParser = require('body-parser') var multer = require('multer'); var upload = multer(); app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true })) app.use(upload.array('fileslist', 1)); app.use(express.static('public')); app.use('/students',students)
Мой маршрутизатор и контроллер выглядят так
router.post("/create-product",products.store)
//контроллер
exports.uploadForm = (req,res)=gt; { var file = req console.log( file) }
Примечание: Я пробовал вставлять их отдельно, чтобы вставлять поля в mysql отдельно и изображение отдельно с помощью lt;urlgt;, но мне не удается вставить их полностью, как на одном дыхании