Skip to content

Error Handling? #2992

Closed
Closed
@kingram6865

Description

@kingram6865

I have a REST API and for an INSERT handler I have a custom (45000) error in MySQL.
Node throws the stack in the console but I cannot capture that info in my try catch for proper handling.

There's no documentation on Error handling for mysql2. Any thoughts/suggestions?

Error: DUPLICATE: Already have that data
    at PromisePool.query (/home/kingram/PROJECTS/omnibusapi/node_modules/mysql2/promise.js:356:22)
    at call (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:8:36)
    at tryCatch (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1)
    at Generator._invoke (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1)
    at Generator.next (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1)
    at asyncGeneratorStep (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1)
    at _next (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1)
    at /home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1
    at new Promise (<anonymous>)
    at apply (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:2:1)
    at apply (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:14:2)
    at executeSQL (/home/kingram/PROJECTS/omnibusapi/controllers/data.js:5:26)
    at call (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:26:36)
    at tryCatch (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at Generator._invoke (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at Generator.next (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at asyncGeneratorStep (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at _next (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at /home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1
    at new Promise (<anonymous>)
    at apply (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at handler (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:37:4)
    at Layer.handle [as handle_request] (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/layer.js:95:5)
    at /home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:346:12)
    at next (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:280:10)
    at serveStatic (/home/kingram/PROJECTS/omnibusapi/node_modules/serve-static/index.js:75:16)
    at Layer.handle [as handle_request] (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:328:13)
    at /home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:286:9
    at Function.process_params (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:346:12)
    at next (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:280:10)
        at serveStatic (/home/kingram/PROJECTS/omnibusapi/node_modules/serve-static/index.js:75:16)
    at Layer.handle [as handle_request] (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:328:13)
    at /home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:286:9
    at Function.process_params (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:346:12)
    at next (/home/kingram/PROJECTS/omnibusapi/node_modules/express/lib/router/index.js:280:10)
    at /home/kingram/PROJECTS/omnibusapi/node_modules/body-parser/lib/read.js:137:5
    at AsyncResource.runInAsyncScope (node:async_hooks:206:9)
    at invokeCallback (/home/kingram/PROJECTS/omnibusapi/node_modules/raw-body/index.js:238:16)
    at done (/home/kingram/PROJECTS/omnibusapi/node_modules/raw-body/index.js:227:7)
    at IncomingMessage.onEnd (/home/kingram/PROJECTS/omnibusapi/node_modules/raw-body/index.js:287:7)
    at IncomingMessage.emit (node:events:518:28)
    at IncomingMessage.emit (node:domain:488:12)
    at endReadableNT (node:internal/streams/readable:1696:12)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'ER_SIGNAL_EXCEPTION',
  errno: 1644,
  sql: "INSERT INTO a (data) VALUES (data)",
  sqlState: '45000',
  sqlMessage: 'DUPLICATE: Already have that data'
}

console.log(err) produces:

TypeError: Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
    at _nonIterableRest (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at _slicedToArray (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at call (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:26:51)
    at tryCatch (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at Generator._invoke (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at Generator.next (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at asyncGeneratorStep (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at _next (/home/kingram/PROJECTS/omnibusapi/routes/data/addNewData.js:2:1)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions