POST https://waste-alert-api.herokuapp.com/datas 500 (Internal Server Error)
Creé un proyecto React donde quiero cargar una imagen con algunos datos. Todos los métodos funcionan bien excepto el método de publicación. Para una mejor comprensión, agregué la parte React JS, así como el código Node Js.
El servidor Node Js funciona bien cuando probé con POSTMAN.
reaccionar JS
const submitPostHandler = async (data) => { try { const response = await fetch( "https://waste-alert-api.herokuapp.com/datas", { method: "POST", body: data, headers: { "Content-Type": "multipart/form-data", Authorization: token, }, } ); console.log(response); } catch (err) { console.log(err); } }; const metaData = { "wasteType": enteredWasteType, "location": { "lat": enteredLat, "long": enteredLong, }, }; console.log(metaData); const data = new FormData(); data.append("image", file); data.append("data", metaData); props.submitPostHandler(data);Nodo J
router.post( "/datas", auth, uploadOptions.single("image"), async (req, res, next) => { const file = req.file; if (!file) return res.status(400).send("No image in the request"); const fileName = file.filename; const basePath = `${req.protocol}://${req.get("host")}/uploads/`; console.log(req.body.data); const newData = JSON.parse(req.body.data); const data = new Data({ wasteType: newData.wasteType, location: newData.location, image: `${basePath}${fileName}`, owner: req.user._id, }); try { await data.save(); res.status(201).send(data); } catch (e) { res.send({ e, error: "something is wrong" }); } } );Tuve un problema similar con mi aplicación MERN. El archivo package.json de mi cliente incluía una clave de proxy con la dirección de la aplicación creada por Heroku. Pero causó errores internos del servidor 500/503 al ejecutar la aplicación en localhost. En primer lugar, seguí esta solución e instalé http-proxy-middleware en la carpeta del cliente. Y en segundo lugar, en mi método axios.post cambié el manejo de errores de err a err.response.data como se sugiere aquí .