Jak importujesz sekelezować błędy? Chcę użyć konkretnych błędów, takich jak SequelizeUniqueConstraintError) dla obsługi błędów.

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

Dostaję SequelizeUniqueConstraintError is not defined, ale nie mogę wydawać się nawigacji po instancji sequeleize, aby znaleźć wszystkie klasy błędów?

0
Jonas Grønbek 5 październik 2020, 22:39

1 odpowiedź

Najlepsza odpowiedź

Sprawdź Kod źródłowy z SequelizeUniqueConstraintError. Klasa o nazwie UniqueConstraintError. SequelizeUniqueConstraintError jest wartością nieruchomości {X3}}. Jest nie klasa javascript. Więc należy użyć UniqueConstraintError.

Na przykład.

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);
  }
}

Wynik wykonania:

401

Wersja pakietu: "sequelize": "^5.21.3"

2
slideshowp2 7 październik 2020, 13:11