Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

637
Visualizações
No se pueden obtener datos. Error: no se pueden establecer encabezados después de enviarlos al cliente

Recibo este error cuando intento recuperar publicaciones de un usuario específico. El código para obtener los datos es correcto. No estoy seguro de dónde viene el error.

Del lado del servidor ingrese la descripción de la imagen aquí Lado del cliente

ingrese la descripción de la imagen aquí

A continuación se muestra el código para la publicación individual.

 const UserPosts = () => { const [user, setUser] = useState() useEffect(() => { const id = localStorage.getItem("userId"); const sendRequest = async () => { const res = await axios.get(`/post/user/${id}`) .catch(error => console.log(error)); const data = await res.data; console.log(data) return data; } sendRequest() .then((data) => { setUser(data.user) console.log(data) }) }, []) return ( <div> {user && user.posts.map((post, index) => ( <Post id={post._id} isUser={true} key={index} username={user.username} caption={post.caption} selectedFile={post.selectedFile} createAt={post.createAt} /> )).reverse()} </div> ) } export default UserPosts;

Este es el controlador de correos para esa ruta.

 export const getUserById = async (req, res) => { const userId = req.params.id; let userPosts; try { userPosts = await User.findById(userId).populate("posts"); } catch (error) { console.log(error) } if (!userPosts) { res.status(404).json({ message: "No Post Found" }) } res.status(200).json({ user: userPosts }) }
about 4 years ago · Santiago Gelvez
3 Respostas
Responde à pergunta

0

useEffect(() => { const id = localStorage.getItem("userId"); const sendRequest = async () => { const {data} = await axios.get(`http://localhost:backend-port/post/user/${id}`) setUser(data.user) } sendRequest() }, [])

Por favor, inténtalo

about 4 years ago · Santiago Gelvez Relatório

0

Su problema, como señala @Gavin, es que responde con un estado de 404, pero luego cae, fuera del bloque if , a otra llamada res.status . No puede enviar el estado más de una vez de esa manera, y debe reestructurar su lógica para evitar llamar a res.status dos veces. Dos soluciones fáciles y viables:

Opción 1: agregue un return en el bloque de manejo de errores para evitar caer en el caso sin error.

 if (!userPosts) { res.status(404).json({ message: "No Post Found" }) return; } res.status(200).json({ user: userPosts })

Opción 2: use un bloque else para separar el caso de error del caso de no error de manera simétrica.

 if (!userPosts) { res.status(404).json({ message: "No Post Found" }) } else { res.status(200).json({ user: userPosts }) }
about 4 years ago · Santiago Gelvez Relatório

0

Me di cuenta de cuál era el problema.

Si bien mi principal problema fue que el componente no mostraba los datos en la página debido a que obtuvo la ruta de inicio de sesión incorrecta en el lado del cliente. Cuando el usuario inicia sesión, almacené la identificación del usuario en el almacenamiento local y recuperé la identificación del usuario del almacenamiento local para obtener la identificación del usuario al mostrar la publicación del usuario.

El problema en el lado del servidor se debió a que no se devolvió la declaración if y condujo a la devolución de 2 respuestas.

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda