request-error.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. 'use strict'
  2. const MSSQLError = require('./mssql-error')
  3. /**
  4. * Class RequestError.
  5. *
  6. * @property {String} number Error number.
  7. * @property {Number} lineNumber Line number.
  8. * @property {String} state Error state.
  9. * @property {String} class Error class.
  10. * @property {String} serverName Server name.
  11. * @property {String} procName Procedure name.
  12. */
  13. class RequestError extends MSSQLError {
  14. /**
  15. * Creates a new RequestError.
  16. *
  17. * @param {String} message Error message.
  18. * @param {String} [code] Error code.
  19. */
  20. constructor (message, code) {
  21. super(message, code)
  22. if (message instanceof Error) {
  23. if (message.info) {
  24. this.number = message.info.number || message.code // err.code is returned by msnodesql driver
  25. this.lineNumber = message.info.lineNumber
  26. this.state = message.info.state || message.sqlstate // err.sqlstate is returned by msnodesql driver
  27. this.class = message.info.class
  28. this.serverName = message.info.serverName
  29. this.procName = message.info.procName
  30. } else {
  31. this.number = message.code // err.code is returned by msnodesql driver
  32. this.state = message.sqlstate // err.sqlstate is returned by msnodesql driver
  33. }
  34. }
  35. this.name = 'RequestError'
  36. if ((/^\[Microsoft\]\[SQL Server Native Client 11\.0\](?:\[SQL Server\])?([\s\S]*)$/).exec(this.message)) {
  37. this.message = RegExp.$1
  38. }
  39. }
  40. }
  41. module.exports = RequestError