Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

223
Views
`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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!