如何使用续集特定错误?

Jon*_*bek 0 exception node.js sequelize.js

你如何导入续集错误?我想使用特定的错误,例如SequelizeUniqueConstraintError)错误处理。

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

我得到了SequelizeUniqueConstraintError is not defined,但我似乎无法浏览 sequelize 实例以找到任何错误类?

sli*_*wp2 5

检查源代码SequelizeUniqueConstraintError。名为 的类UniqueConstraintError。该SequelizeUniqueConstraintError是价值name属性。它不是一个 JavaScript 类。所以你应该使用UniqueConstraintError.

例如

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

执行结果:

401
Run Code Online (Sandbox Code Playgroud)

包版本: "sequelize": "^5.21.3"