import MSSQL from 'msnodesqlv8' import { HttpError } from 'flaska' export function initPool(core, config) { let pool = new MSSQL.Pool(config) core.log.info(config, 'MSSQL database setttings') pool.on('open', function() { core.log.info('MSSQL connection open') }) let waiting = false /*pool.on('error', function(error) { if (error.length) { let msg = 'Error in MSSQL pool\n => ' + error[0].message.trim() for (let i = 1; i < error.length; i++) { msg += '\n => ' + error[i].message.trim() } core.log.error(msg) } else { core.log.error('Error in MSSQL pool') core.log.error(error) } if (waiting) { return } core.log.warn('Attempting to connect again in 5 seconds') waiting = true setTimeout(function() { waiting = false console.log('opening') pool.open() console.log('done') }, 5000) })*/ core.log.info('Attempting to connect to MSSQL server') pool.open() // const sp = pool.procedureMgr() return { safeCallProc: function(name, params, options) { return pool.promises.callProc(config.schema + '.' + name, params, options) .catch(function(err) { let message = err.message if (err.lineNumber && err.procName) { message = `Error at ${err.procName}:${err.lineNumber} => ${message}` } throw new HttpError(500, message) }) }, promises: pool.promises, } }