Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
El método POST devuelve 404 aunque el método GET devuelve 302

El problema

Tengo esta API falsa:

 [{"task_id":"44","task_title":"task1"},{"task_id":"45","task_title":"task2"},{"task_id":"46","task_title":"task1"},{"task_id":"47","task_title":"task2"}]

Cuando trato de acceder a él usando un método GET de búsqueda, usando el siguiente código:

 function getData(){ fetch('http://localhost:5000/api/tasks') .then(res => res.json()) .then((data) => {console.log(data)});} getData();

Obtengo el resultado esperado en la consola.

 (4) [{…}, {…}, {…}, {…}] 0: {task_id: '44', task_title: 'task1'} 1: {task_id: '45', task_title: 'task2'} 2: {task_id: '46', task_title: 'task1'} 3: {task_id: '47', task_title: 'task2'}

Sin embargo, cuando trato de acceder a él a través de un método POST, así:

 function postData(){ fetch('http://localhost:5000/api/tasks',{ method: 'POST', mode: 'cors', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ task_title: 'testTask' }) }) .then(res =>{ return res.json() }) .then(data => console.log(data)) .catch(error => console.log('ERROR')) }

Me sale este inesperado 404:

 POST http://localhost:5000/api/tasks 404 (Not Found)

Mi API está configurada como tal usando Node.js y express:

 app.get('/api/tasks', (req, res)=>{ db.SelectAll().then(data => {res.json(data)}); })

db es solo:

 const db = require('./db/db.js');

y SelectAll() es:

 async function SelectAll() { try { const res = await client.query("SELECT * FROM tasks"); return res.rows; } catch(err){ console.log(err); } client.end(); };

¿Qué está causando este 404?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

app.get('/api/tasks', (req, res)=>{ db.SelectAll().then(data => {res.json(data)}); })

Su código registra un controlador GET. No ha utilizado app.post para registrar un controlador POST.

Si bien esto debería significar que una solicitud POST a esa ruta obtiene una respuesta 405 Method Not Allowed , Express no admite esto automáticamente y en su lugar da un 404 Not Found .

Si desea hacer algo cuando se realiza una solicitud POST a esa ruta, debe usar app.post para registrar una función que se ejecutará y hará lo que sea que desee hacer.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda