Estoy aprendiendo nodo backend/express. En este bloque de código, estoy tratando de enviar algunos datos al backend, pero no me detectan (en promesa) TypeError: Failed to fetch. Gracias.
back-end:
const path = require("path") const express =require("express") const cors = require('cors') const app = express() const publicPath = path.join(__dirname, "..","client", 'dist') const publicPath2 = path.join(__dirname, "..","client", 'public') const port = process.env.PORT || 3000 app.use(express.urlencoded({extended: true})) app.use(express.json()) app.use(cors()) app.use(express.static(publicPath)) app.use(express.static(publicPath2)) app.use(express.urlencoded) app.get("*", (req,res) => { res.sendFile(path.join(publicPath, 'index.html')) }) //edit app.post('/api', (req, res) => { console.log('I got a req') console.log(req.body) const data = req.body res.json({ status:'success', cart:data.cart })})
app.listen(port, () => { console.log('server is up') })Interfaz
const submitAuthor = async () => { const result = await fetch('/api', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(cart) }) const data= await result.json() console.log(data) }Editado la parte de respuesta.
Su navegador sabe cómo enviar solo solicitudes GET , a menos que especifique de alguna manera que necesita otro método (como usar un formulario). Entonces, si solo intenta acceder a ese punto final a través de la URL, el navegador enviará una solicitud GET, no una POST.