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

318
Vistas
mssql - excepción no detectada en modo de transmisión

Estoy enfrentando el mismo problema que se menciona aquí :

Al intentar usar stream y consultar una tabla sin mencionar el schema .

Algo así como select * from table en lugar de select * from schema_name.table . Recibo el siguiente error: mssql uncaughtException RequestError: Invalid object name

Pude registrar el error mientras escuchaba readStream.on('error') pero aún arroja una excepción no uncaughtException .

Versiones de software

 "mssql": "^7.2.1", "nodejs": "12.15.0"

Comportamiento esperado:

Debería poder capturar la excepción no detectada

Comportamiento real:

 INFO: waaaaaa1 uncaughtException RequestError: Invalid object name 'employee'. at handleError (.../node_modules/mssql/lib/tedious/request.js:388:15) at Connection.emit (events.js:223:5) at Connection.emit (.../node_modules/tedious/lib/connection.js:1071:18) at Parser. (.../node_modules/tedious/lib/connection.js:1176:12) at Parser.emit (events.js:223:5) at Readable. (.../node_modules/tedious/lib/token/token-stream-parser.js:27:14)

Configuración:

 import mssql from 'mssql'; try { mssql.connect({ server, port: Number.parseInt(port), database, user, password, options: { encrypt: true, // for azure trustServerCertificate: trustServerCertificate ? true : false // change to true for local dev / self-signed certs } }) .then(async client => { const readStream = client.request(); readStream.stream = true; const passThroughStream = new stream.PassThrough(); const writeStream = fs.createWriteStream(path.join(__dirname, './writeMe.json')); readStream.on('error', () => log.info('waaaaaa1')); passThroughStream.on('error', () => log.info('waaaaaa2')); writeStream.on('error', () => log.info('waaaaaa3')); readStream.pipe(passThroughStream).pipe(writeStream); readStream.query(query); }) // the promise error handler .catch(() => { log.info('waaaaaa4'); }); // the main sql error handler: mssql.on('error', error => { log.error('SQL error1', error); }); // the main sql error handler: client.on('error', error => { log.error('SQL error2', error); }); } catch (err) { log.info('catchhhh meee', err); } finally { if(client){ client.close(); } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Finalmente resolvió el problema usando const readableStream = request.toReadableStream();

Código completo:

 const request = client.request(); const readableStream = request.toReadableStream(); const writeStream = fs.createWriteStream(path.join(__dirname, './writeMe.json')); const passThroughStream = new stream.PassThrough(); readableStream.on('end', () => passThroughStream.end()); readableStream.on('error', (e) => log.info('waaaaaa1')); readableStream.pipe(passThroughStream).pipe(writeStream); request.query(query);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Intente agregar un controlador de captura para connect y, lo que es más importante, para el objeto mssql como se menciona en los documentos

 mssql.connect({ // ... }) .then(() => { return readStream.query(query); }) // the promise error handler .catch(() => { }) // the main sql error handler: mssql.on('error', error => { console.error('SQL error') })
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