const express = require('express'); //instance of an app const app = express(); //middleware const bodyParser = require('body-parser'); app.use(express.urlencoded({extended: false})); app.use(express.json()); //core package to let the server and client side talk without any security boundaries const cors = require('cors'); app.use(cors()); app.use(express.static('node')); //setting up server const port = 8000; const server = app.listen(port, listenning); function listenning(){ console.log(`running on local server: ${port}`); }; //GET route const data = []; app.post('/addMovie', addMovie) function addMovie(req, res){ data.push(req.body); console.log(data); }; const postData = async(URL='', data= {})=>{ console.log(data); const response = await fetch(url, { method: 'post', credentials: 'same-origin', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data), }); try{ const newData = await response.json(); console.log(newData); return newData }catch(error){ console.log("error", error); } } postData('/addMovie', {movie: 'Dark Knight', score: 5});Estoy haciendo una solicitud POST simple a través de node.js y express pero no puedo encontrar lo que está mal, aquí está el código, cuando cargo la página dice "no se puede OBTENER" y da el error "404 (No encontrado)" Alguien puede ayudar ??
El error 404 significa que la URL es incorrecta.
'/addMovie' como URL y lo usas para buscar.
Es posible que desee actualizar esto:
const response = await fetch(url, {a esto
const response = await fetch('http://localhost:8000' + url, { Agregando 'http://localhost:8000' como prefijo de su url.
En su caso, debe POST al punto final:
http://localhost:8000/addMovieLa respuesta de @Balastrong es la más correcta (debe usar http://localhost:8000 como su URI base), pero también deberá actualizar el nombre de su parámetro para su función postData . En este momento, la URL está en mayúsculas, pero su uso de la variable más adelante es todo en minúsculas.
Así que usa const postData = async(url='',