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

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

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 Report

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 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!