I need to upload 2 fields, one for image and the other for video, but when I try to upload both, it doesn't work. When I upload an input it works fine for me, as I show below, but I don't know how to modify it to receive 2 files and upload it with multer to gcs
In the front
let formdata = new FormData();
formdata.append("name", name)
formdata.append("price", price)
formdata.append("desc", desc)
formdata.append("type", type)
formdata.append("image", {uri: image, name: 'image.jpg', type: 'image/jpeg'})
formdata.append("user_id", user.uid)
formdata.append("video", {uri: video})
In the Back
router.post('/addService', multer.single('image'), imgUpload.uploadToGcs, async (req, res, next) => {
try {
const data = req.body;
if (req.file && req.file.cloudStoragePublicUrl) {
data.imageUrl = req.file.cloudStoragePublicUrl;
}
let user_id = data.user_id;
delete data.user_id
const newService = new Services( {service_data:data, photo_gallery:"", video_galery:"", user_id:user_id});
await newService.save();
return res.status(201).json({
result: "200",
})
} catch (error) {
console.log(error)
return res.status(400).json({
result: error,
})
}
I tried to make the following change but it didn't work for me, I
router.post('/addService', multer.single('image'),multer.single('video'), imgUpload.uploadToGcs, async (req, res, next) => {
try {
const data = req.body;
if (req.file && req.file.cloudStoragePublicUrl) {
data.imageUrl = req.file.cloudStoragePublicUrl;
}
let user_id = data.user_id;
delete data.user_id
const newService = new Services( {service_data:data, photo_gallery:"", video_galery:"", user_id:user_id});
await newService.save();
return res.status(201).json({
result: "200",
})
} catch (error) {
console.log(error)
return res.status(400).json({
result: error,
})
}
also tried to use multer.fields and it didn't work either
router.post('/addService', multer.fields[{image},{video}], imgUpload.uploadToGcs, async (req, res, next) => {
try {
const data = req.body;
if (req.file && req.file.cloudStoragePublicUrl) {
data.imageUrl = req.file.cloudStoragePublicUrl;
}
let user_id = data.user_id;
delete data.user_id
const newService = new Services( {service_data:data, photo_gallery:"", video_galery:"", user_id:user_id});
await newService.save();
return res.status(201).json({
result: "200",
})
} catch (error) {
console.log(error)
return res.status(400).json({
result: error,
})
}