Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use sequelize specific errors?

How do you import sequelize errors? I want to use specific errors like SequelizeUniqueConstraintError) for error handling.

try {
  query...
} catch(e){
  if (e instanceof SequelizeUniqueConstraintError) { 
    next(new ResourceError(e.toString(), 401))
  } else {
    next(new ResourceError(e.toString(), 500))
  }
}

I'm getting SequelizeUniqueConstraintError is not defined, but I can't seem to navigate through the sequelize instance to find any error classes?

like image 913
Jonas Grønbek Avatar asked Sep 18 '25 03:09

Jonas Grønbek


1 Answers

Check the source code of SequelizeUniqueConstraintError. The class named UniqueConstraintError. The SequelizeUniqueConstraintError is the value of name property. It's NOT a JavaScript class. So you should use UniqueConstraintError.

E.g.

import { UniqueConstraintError } from 'sequelize';

try {
  throw new UniqueConstraintError({ message: 'test unique constraint' });
} catch (e) {
  if (e instanceof UniqueConstraintError) {
    console.log(401);
  } else {
    console.log(500);
  }
}

The execution result:

401

package version: "sequelize": "^5.21.3"

like image 97
slideshowp2 Avatar answered Sep 19 '25 17:09

slideshowp2