test.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. 'use strict'
  2. const mssql = require('./')
  3. const sqlConfig = {
  4. password: 'P@ssw0rd',
  5. database: 'master',
  6. // connectionTimeout: undefined,
  7. // requestTimeout: 30000,
  8. stream: false,
  9. options: {
  10. encrypt: true,
  11. readOnlyIntent: true
  12. },
  13. port: 1433,
  14. user: 'sa',
  15. server: 'localhost',
  16. pool: {
  17. // acquireTimeoutMillis: 1000,
  18. // propagateCreateError: true,
  19. },
  20. }
  21. let pool
  22. function createPool() {
  23. return new mssql.ConnectionPool(sqlConfig)
  24. }
  25. const poolRequest = createPool()
  26. function connect () {
  27. console.log('trying to connect to server')
  28. // const poolRequest = createPool()
  29. mssql.on('error', (e) => {
  30. console.log('error event fired')
  31. console.error(e)
  32. })
  33. return poolRequest.connect(sqlConfig).then((connection) => {
  34. // setTimeout(connection.close.bind(connection), 2000)
  35. console.log('connection established')
  36. console.log(connection)
  37. connection.on('error', (e) => {
  38. console.log('on error')
  39. console.error(e)
  40. })
  41. pool = connection
  42. })
  43. }
  44. function runQuery (result) {
  45. if (result) {
  46. console.log('*** RESULT ***')
  47. console.log(result.recordset)
  48. console.log('*** RESULT ***')
  49. }
  50. const request = pool.request();
  51. return new Promise((resolve) => {
  52. setTimeout(resolve, 10000)
  53. }).then(() => request.query('SELECT 1').catch(e => {
  54. console.log('query error')
  55. throw e
  56. })).then(runQuery)
  57. }
  58. connect()
  59. .then(() => {
  60. return runQuery()
  61. })
  62. .catch((e) => {
  63. console.log('connection error')
  64. console.error(e)
  65. console.log(pool)
  66. return runQuery()
  67. })
  68. .then(() => {
  69. return pool && pool.close()
  70. }).catch(() => {
  71. console.log(pool)
  72. })