Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
Node.js No se puede leer la propiedad 'toJsonWith' de undefined

Estoy tratando de devolver íconos, como resultado, para producirlos en la página

El siguiente código a continuación map todos los resultados que estoy tratando de devolver a la página.

 const icons = await Icon.find({ _id: { $in: ids } }).select({ ...options.select, ...options.additional }) const results = ids .map(id => { const iconsGroup = icons.find(icon => icon.id === id) if (query.hasPublishingError) { iconsGroup.icons = iconsGroup.icons.filter(el => (el.errorsData.length > 0 && el.status === 'draft')) } return iconsGroup }) .map(i => i.toJsonWith(options.select)) await postProcess(results) return { docs: results, limit: response.limit, page: response.page, pages: response.pages, total: response.total }

Cuando realizo una solicitud GET , recibo un error como:

TypeError: Cannot read property 'toJsonWith' of undefined\n

El punto doloroso es .map(i => i.toJsonWith(options.select))

Por cierto, por alguna razón, esta función toJsonWith no se puede encontrar como una declaración en alguna parte. Por favor, ayúdenme, estoy tratando de averiguar qué está mal aquí durante 4 días.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

un _id siempre debe ser único, por lo que

 const iconsGroup = icons.find(icon => icon.id === id)

debe devolver un arrayObject con un máximo de un Elemento.

Luego comprueba si hay errores de publicación.

 if (query.hasPublishingError) { iconsGroup.icons = iconsGroup.icons.filter(el => (el.errorsData.length > 0 && el.status === 'draft')) }

Y aquí puede suceder que iconsGroup sea una matriz vacía.

A continuación, crea un segundo mapa para usar su toJsonWith mágico (tampoco sé qué hace).

Puede combinar estos dos mapas e iterar directamente sobre sus íconos en lugar de usar un mapa en sus ID (el siguiente código le brinda una variedad de íconos dependiendo de query.hasPublishingError):

 const results = icons.map(icon => { if (query.hasPublishingError && icon.errorsData.length > 0 && icon.status === 'draft') { return icon.toJsonWith(options.select) } else { return icon.toJsonWith(options.select) } })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda