Solucionado (ver solución)
Solucionado
(ver solución)
7
respuestas

no me sale el nombre ni el email

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": "aplication/json"
        },
        body: JSON.stringify({nombre,email, id:uuid.v4()})
    });
} 
export const clienteServices = {
    listaClientes,
    crearCliente,
} 
7 respuestas
solución!
import { clienteServices } from "../service/client-service.js";

const formulario = document.querySelector("[data-form]");

formulario.addEventListener("submit", (evento) =>{
    evento.preventDefault();
    const nombre = document.querySelector("[data-nombre]").value
    const email = document.querySelector("[data-email]").value
    console.log(nombre, " - ", email);
    clienteServices.crearCliente(nombre, email).then(respuesta =>{
        console.log(respuesta)
    }).catch(err => console.log(err))
});

¡Hola Byron!

Gracias por compartir tu duda con nosotros. Según el código que proporcionaste, parece que estás intentando crear un nuevo cliente, pero no estás obteniendo el nombre ni el correo electrónico del formulario.

En el código, veo que estás utilizando document.querySelector para obtener los valores de los campos de entrada, pero estás utilizando los atributos data-nombre y data-email en lugar de los atributos name y email. Esto podría ser la razón por la cual no estás obteniendo los valores correctamente.

Para solucionar este problema, te recomendaría que cambies los atributos data-nombre y data-email a name y email respectivamente en tu formulario HTML. Luego, en tu archivo registro.controller.js, puedes obtener los valores utilizando document.querySelector('[name="nombre"]').value y document.querySelector('[name="email"]').value.

Aquí tienes un ejemplo de cómo se vería el código corregido:

const nombre = document.querySelector('[name="nombre"]').value;
const email = document.querySelector('[name="email"]').value;

crearCliente(nombre, email)
  .then((respuesta) => {
    console.log(respuesta);
    window.location.href = 'screens/registro_completado.html';
  })
  .catch((error) => {
    console.log(error);
  });

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! :)

Hola Byron, yo tuve el mismo problema pero el error esta en el "Content-Type"

lo tienes como: "aplication/json"

y debe ser: "application/json"

eso solucionó en mi caso el problema ya que lo teía igual con una "p"

Hola, en mi caso fue util esta parte del codigo,

const nombre = document.querySelector('[name="nombre"]').value; const email = document.querySelector('[name="email"]').value;

Me queda la inquietud de porque al profesor si le funciono como lo explico en el video, igualmente gracias :)

Muchas gracias Jonathan Sánchez Hernández, me solucionaste este error, difícil de detectar.

Excelente Maricela, que bueno que te sirvió mi comentario, ya que me pasé un buen rato tratando de detectarlo ;)

Me soluciono el problema remplazando estas dos lineas de codigo:

const nombre = document.querySelector(["data-nombre"]).value; const email = document.querySelector(["data-email"]).value;

por estas:

const nombre = document.querySelector('[name="nombre"]').value; const email = document.querySelector('[name="email"]').value;

Ojala a alguien mas le sirva.