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

432
Views
Rastreos de pila amigables con pg-promise para errores de consulta

Tengo una aplicación que consulta la base de datos PostgreSQL con una excelente biblioteca pg-promise .

¿Hay alguna manera de obtener un seguimiento de pila amigable en el caso de que la sintaxis de consulta contenga errores? Ya sea a través de la configuración de Node o la configuración de pg-promise.

  • El UnhandledPromiseRejectionWarning arrojado en el error de consulta no da una indicación de en qué código fuente la aplicación realizó la consulta.
  • No quiero decorar todas las consultas con capturas de prueba individuales solo para identificar la consulta no válida.

Aquí hay un ejemplo de seguimiento de pila inútil:

 (node:53357) UnhandledPromiseRejectionWarning: error: there is no parameter $1 at Parser.parseErrorMessage (/Users/moo/code/myapp/node_modules/pg-protocol/dist/parser.js:278:15) at Parser.handlePacket (/Users/moo/code/myapp/node_modules/pg-protocol/dist/parser.js:126:29) at Parser.parse (/Users/moo/code/myapp/node_modules/pg-protocol/dist/parser.js:39:38) at Socket.<anonymous> (/Users/moo/code/myapp/node_modules/pg-protocol/dist/index.js:8:42) at Socket.emit (events.js:314:20) at addChunk (_stream_readable.js:303:12) at readableAddChunk (_stream_readable.js:279:9) at Socket.Readable.push (_stream_readable.js:218:10) at TCP.onStreamRead (internal/stream_base_commons.js:188:23) (Use `node --trace-warnings ...` to show where the warning was created) (node:53357) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) (node:53357) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

No hay ninguna indicación de dónde se realizó la consulta en este seguimiento de la pila, lo que dificulta la identificación de errores. Además, agregar node --trace-warnings no agrega un contexto más útil al seguimiento de la pila.

Alternativamente, ¿hay otras bibliotecas de conectores PostgreSQL para Node que tengan más capacidades de seguimiento de errores?

Nodo v14.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Falta un poco el seguimiento de pila nativo para promesas en NodeJS. Es por eso que dentro de pg-promise está documentado en todas partes que Bluebird con Long Stack Tracing es un mejor enfoque.

 const Promise = require('bluebird'); // overload for the default Promise Promise.config({ longStackTraces: true // enable long-stack tracing }); const pgp = require('pg-promise')({ promiseLib: Promise // use custom promise library within pg-promise });

Tenga en cuenta que longStackTraces: true genera una pequeña penalización en el rendimiento, por lo que no desea habilitarlo para la producción.

over 4 years ago · Santiago Trujillo 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!