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

179
Vistas
¿Cuál es la mejor manera de registrar errores masivos que contienen nuestras claves?

Normalmente simplemente registro el error, o tal vez lo haga console.log(err.message) , pero uno de nuestros servidores devuelve un volcado de datos de información. Dado que Javascript trunca los objetos, la parte pertinente del error se oscurece.

Así que el error completo será así

 request:{ // thousands of lines // ... // several levels deep there will be a pertinent portion buried deep within the error error:{ en: { message:{ "Here is the super specific error info which I care about"

Este registro terminará así

 request:{ // thousands of lines Object // <- it's in there

Idealmente, simplemente registraría la parte importante que me importa, pero para llegar a esta parte del objeto, tengo que inspeccionar el error console.log(util.inspect(err, false, null)) , que entrega un volcado de datos de más de 5000 líneas que contiene nuestras claves en numerosos lugares.

En un momento estaba haciendo esto

 var errorMsgIs = ""; if (err.response && err.response.body && err.response.body.error && err.response.body.error.en) { errorMsgIs = err.response.body.error.en } console.log(loggit, "Bank Error on Nodes.create inside addARInfo: ", err, errorMsgIs);

Pero eso solo funciona si la estructura nunca cambia en función del error.

Es la solución para encontrar algún tipo de función de limpieza para peinar las 5000 líneas, nivel por nivel y verificar específicamente las claves, luego hacer un .replace , he pensado en ir por esa ruta.

¿Cuál es la mejor manera de registrar estos errores masivos para que pueda obtener los datos pertinentes que necesito enterrados profundamente en el error sin exponer nuestras claves en los registros?

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

0

Sí, debe recorrer las propiedades del objeto y buscar su estructura de datos. Con una función recursiva, es bastante fácil:

 /** * Retrieve an error message from an error object. * @param {object} obj * @returns {string | undefined} */ function getErrorMessage(obj) { const props = Object.values(obj); for (let i = 0; i < props.length; i++) { const element = props[i]; if (typeof element === 'object') { if (element.error?.en?.message) return element.error.en.message; const result = getErrorMessage(element); if (result) return result; } } } const data = {/* ... */}; // your data object console.log(getErrorMessage(data));

Tenga en cuenta que esto está usando la sintaxis ES2020+ (para encadenamiento opcional). Si no tiene acceso a ese nivel de ES, puede usar su sintaxis inicial:

 if (element.error && element.error.en && element.error.en.message) return element.error.en.message;
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