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

235
Vistas
No puedo hacer que Node mssql funcione correctamente

Esta es la forma en que estoy usando mssql en este momento, pero a veces da errores:

JavaScript:

 router.get('/academiejaren', (req, res) => { sql.connect(dbconfig, function (err) { var request = new sql.Request(); if (err) { console.log(err); return; } request.query("SELECT * FROM [Alg].[DefAJ];", function (err, recordset) { if (err) { console.log(err); return; } else { res.end(JSON.stringify(recordset)); } }); request.query(); }); });

Error:

 { ConnectionError: Connection is closed. at C:\Users\Milan\Documents\Octopus\Octopus 2.0\node_modules\mssql\lib\main.js:1569:17 at _combinedTickCallback (internal/process/next_tick.js:73:7) at process._tickCallback (internal/process/next_tick.js:104:9) name: 'ConnectionError', message: 'Connection is closed.', code: 'ECONNCLOSED' } (node:556) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ConnectionError: Connection is closed. (node:556) 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.

Estoy usando la versión 3.2.0 porque no puedo hacer funcionar la más nueva, la 4.0.2... Alguna ayuda o algunos buenos ejemplos, porque no puedo descifrar la documentación...

¡gracias de antemano!

EDITAR

Actualizado en un pequeño proyecto de prueba a 4.0.2. y lo hice funcionar. Voy a cambiar mi API para esta actualización.

 router.get('/academiejaren', (req, res) => { (async function () { try { let pool = await sql.connect(config) let result1 = await pool.request() .query('SELECT * FROM [Alg].[DefAJ];') res.send(JSON.stringify(result1.recordset)); } catch (err) { res.send("CAUGHT ERROR academiejaren"); } })() sql.on('error', err => { // ... error handler }) });

Ahora me queda una pequeña pregunta, ¿qué debo hacer con catch y sql.on()? ¿Cómo debo manejar los errores?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

router.get('/academiejaren', (req, res) => { sql.connect(dbconfig, function (err) { var request = new sql.Request(); if (err) { console.log(err); return; } request.query("SELECT * FROM [Alg].[DefAJ];", function (err, recordset) { if (err) { console.log(err); return; } else { res.send(JSON.stringify(recordset)); } }); request.query(); }); });

literalmente hiciste res.end , end sale, quieres res.send

over 4 years ago · Santiago Trujillo Denunciar

0

Yo lo hago un poco diferente:

 router.get('/', function(req, res, next) { sql.connect(dbconfig).then(function() { // Query new sql.Request().query("Your query") .then(function(recordset) { //console.dir(recordset); res.setHeader('Content-Type', 'application/json'); res.send( recordset ); }).catch(function(err) { // ... query error checks }); }); });

Ahora, en su dbconfig, asegúrese de tenerlo como: mssql://usuario:contraseña@servidor/db

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