Estoy tratando de conectar mi base de datos de SQL Server con node.js usando knex pero tengo un problema
Error: No event 'socketConnect' in state 'SentPrelogin' at Connection.dispatchEvent (C:\Users\temp\Documents\PRactice\node_modules\tedious\lib\connection.js:1281:26) at Connection.socketConnect (C:\Users\temp\Documents\PRactice\node_modules\tedious\lib\connection.js:1303:10) at C:\Users\temp\Documents\PRactice\node_modules\tedious\lib\connection.js:1145:12 at Socket.onConnect (C:\Users\temp\Documents\PRactice\node_modules\tedious\lib\connector.js:106:7) at Socket.emit (events.js:314:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1131:10) Emitted 'error' event on Connection instance at: at Connection.dispatchEvent (C:\Users\temp\Documents\PRactice\node_modules\tedious\lib\connection.js:1281:12) at Connection.socketConnect (C:\Users\temp\Documents\PRactice\node_modules\tedious\lib\connection.js:1303:10) [... lines matching original stack trace ...] at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1131:10) [nodemon] app crashed - waiting for file changes before starting...mi codigo es
var knex = require('knex')({ client: 'mssql', version:"7_1", connection: { user: 'sa', password: 'Admin@123', server: 'localhost', database: 'Demo' } }); knex.select("*").from("Country") .then(function (depts){ depts.forEach((dept)=>{ //use of Arrow Function console.log({...dept}); }); }).catch(function(err) { // All the error can be checked in this piece of code console.log(err); }).finally(function() { // To close the connection pool knex.destroy(); });Necesita agregar una dependencia faltante:
npm install --save tedious A partir de knex v0.95.0, deberá usar la tedious biblioteca en lugar de mssql cuando se conecte a una base de datos MSSQL. De acuerdo con las instrucciones de actualización de knex :
El controlador MSSQL se modificó por completo para abordar la multitud de problemas de rendimiento, manejo de errores y grupo de conexiones. Dado que la nueva implementación usa una biblioteca
tediousdirectamente en lugar demssql, reemplacemssqlcontediousen sus dependencias si está usando una base de datos MSSQL.
La instalación del paquete anterior debería resolver su problema. También tuve que establecer la opción de encrypt en false al conectarme a mi base de datos local para evitar este error:
ConnectionError: Failed to connect to localhost:1433 - self signed certificate