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

233
Visualizações
`object` ("[objeto Objeto]") no se puede serializar como JSON. Solo devuelva tipos de datos serializables JSON

Estoy usando NextJS y anteriormente llamé a una ruta interna /api para obtener estos datos usando fetch() , sin embargo, me di cuenta de que para producción, no le permitirá usar llamadas api internas dentro getServerSideProps Por lo tanto, estoy tratando de llamar a mi Base de datos MongoDB directamente desde getServerSideProps .

Mi problema es que recibo el error de que los datos de mis posts que paso como props no son serializables: " objeto ("[objeto Objeto]") no se puede serializar como JSON. Solo devuelva tipos de datos serializables JSON".

No entiendo por qué, ya que tiene la forma de: [object Object],[object Object],[object Object], etc. ¿Qué debería funcionar cuando se pasa?

Mi código está a continuación como referencia (explicaciones debajo del código):

 export async function getServerSideProps() { let returnID = null let posts = [] let error = false try { const client = await MongoClient.connect(`mongodb+srv://MYUNIQUEMONDODBCONNECTIONDATA`); const db = client.db(); const postsCollection = db.collection("posts"); const result = await postsCollection.find({}).limit(10).toArray(); console.log("RESULT: " + result) client.close(); posts = result.map(r => { return { title: r.title, body: r.body, id: r._id, } }); if (posts[posts.length - 1]?.id) { // make sure it's not undefined returnID = posts[posts.length - 1]?.id; } } catch (error) { error = true } return { props: { startingID: String(returnID), startingError: error, startingPosts: posts, } } }

Los datos que recibo de mi base de datos son más o menos los siguientes: [{"title":"1","body":"1","id":"6276767ca21167f5043d3dc8"},{"title":"2","body":"2","id":"6276767fa21167f5043d3dc9"},{"title":"3","body":"3","id":"62767682a21167f5043d3dca"}, etc.] ¿Esto no coincide con el formato de mis posts que paso como accesorios?

La línea console.log("RESULT: " + result) imprime: [object Object],[object Object],[object Object],[object Object], etc.

RESPUESTA de @jabaa: cambie el regreso a esta línea: startingPosts: JSON.parse(JSON.stringify(posts))

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

return { props: { startingID: String(returnID), startingError: error, startingPosts: JSON.parse(JSON.stringify(posts)), } }

o Como Chris mencionó, puede usar el método .lean() .

about 4 years ago · Juan Pablo Isaza 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