Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] me marca error

const listaClientes = () => fetch("http://localhost:3000/perfil").then(respuesta => respuesta.json());

const crearCliente = (nombre, email) => {
  return fetch("http://localhost:3000/perfil", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ nombre, email, id: uuid.v4() }),
  });
};

const eliminarCliente = (id) => {
  return fetch(`http://localhost:3000/perfil/${id}`, {
    method: "DELETE"
  });
};

const detalleCliente = (id) => {
  return fetch(`http://localhost:3000/perfil/${id}`).then((respuesta) =>
    respuesta.json()
  );
};

const actualizarCliente = (nombre,email,id) => {
  return fetch(`http://localhost:3000/perfil/${id}`, {
    method: "PUT",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ nombre, email }),
  })
  .then((respuesta) => respuesta)
  .catch((err) => console.log(err));
};

export const clientServices = {
  listaClientes,
  crearCliente,
  eliminarCliente,
  detalleCliente,
  actualizarCliente,
};

en la linea 20 me marca error al utilizar fetch

2 respuestas

¡Hola Israelbasurtosanchez!

El error que estás experimentando en la línea 20 se debe a que la función fetch no está siendo utilizada correctamente. La función fetch devuelve una promesa que resuelve en la respuesta de la solicitud HTTP, por lo que necesitas manejar esa promesa correctamente.

En tu código, estás utilizando fetch en la función actualizarCliente, pero no estás manejando la promesa correctamente. En lugar de devolver respuesta, deberías devolver respuesta.json() para obtener los datos de la respuesta en formato JSON.

Aquí está la corrección para la función actualizarCliente:

const actualizarCliente = (nombre, email, id) => {
  return fetch(`http://localhost:3000/perfil/${id}`, {
    method: "PUT",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ nombre, email }),
  })
    .then((respuesta) => respuesta.json())
    .catch((err) => console.log(err));
};

Al utilizar respuesta.json(), estás extrayendo los datos JSON de la respuesta y devolviéndolos como una nueva promesa. Esto te permitirá acceder a los datos en el lugar donde llamas a la función actualizarCliente.

Espero que esto resuelva tu problema. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Buena suerte con tu proyecto!

Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)

Muchas gracias lo reviso de nuevo y igual el video del curso