UNPKG

mssql

Version:

Microsoft SQL Server client for Node.js.

116 lines (100 loc) 2.67 kB
'use strict' const mssql = require('./') // const wtf = require('wtfnode') const sqlConfig = { password: 'Upper_l0wercase', database: 'di_production', // connectionTimeout: undefined, // requestTimeout: 30000, stream: false, options: {encrypt: true}, port: 1433, user: 'sa', server: 'localhost', pool: { acquireTimeoutMillis: 1000, propagateCreateError: true, }, } let errorCount = 0 let pool let reconnectTimer let startTime function createPool() { return new mssql.ConnectionPool(sqlConfig) } const poolRequest = createPool() function connect () { console.log('trying to connect to server') // const poolRequest = createPool() mssql.on('error', () => { console.log('error event fired') }) return mssql.connect(sqlConfig).then((connection) => { // setTimeout(connection.close.bind(connection), 2000) console.log('connection established') console.log(connection) connection.on('error', (e) => { errorCount++ // clearInterval(interval) pool = null // console.log('connection error', e) if (connection.connected || connection.connecting) { console.log('Connection errored, trying to close connection', errorCount, e) connection.close((e) => { console.log(new Date() - startTime) console.log('connection closed') if (e) { errorCount++ // console.log('connection close error', errorCount) } else { // if (reconnectTimer) { // clearTimeout(reconnectTimer) // } // reconnectTimer = setTimeout(reconnect, 1500) } }) } }) pool = connection }).catch((e) => { errorCount++ console.log('failed to establish connection', errorCount, e) console.log(e.toString()) // clearInterval(interval) throw e }) } function reconnect () { console.log('reconnect called') connect() } function getTime () { console.log('getTime called') if (!pool) { console.log('no connection is ready') return } console.log('attempting query') startTime = new Date() pool.query('SELECT GETUTCDATE()').then((result) => { console.log(result) setTimeout(getTime, 2000) // console.log('closing') // pool.close(() => { // console.log('closed') // }) }).catch((e) => { errorCount++ console.log('error performing query', errorCount, e) // wtf.dump() // clearInterval(interval) }) } let interval connect().then(() => { getTime() // interval = setInterval(getTime, 5000) }).catch(() => { }) // setTimeout(poolRequest.close.bind(poolRequest), 15000)