如何自定义 sequelize 枚举错误消息?

How to customize sequelize enum error message?

如何将此模型设置为 return 自定义错误消息,如 Jamaica is not a valid input for enum 而不是标准错误消息?我发现 this 之类的解决方案仅适用于 DATATYPES.STRING 但我需要适用于

的解决方案

这是模特:

module.exports = (sequelize, DataTypes) => {
  const Country = sequelize.define("Countries", {
    nameOfCountry: {
      type: DataTypes.ENUM(
        "Nigeria",
        "Ethiopia",
      ),
      allowNull: false,
    }),
  });

您可以添加自定义错误消息和验证,如 sequelize

的文档中所示

您必须创建自定义 sequelize validate 函数或者您可以传递参数

module.exports = (sequelize, DataTypes) => {
  const Country = sequelize.define("Countries", {
    nameOfCountry: {
      type: DataTypes.ENUM(
        "Nigeria",
        "Ethiopia",
      ),
      allowNull: false,
      validate: {
        customValidator(value) {
          if (value !== "Nigeria" || value !== "Ethiopia") {
            throw new Error("error msg you want to write");
          }
        }
      }
    },
});

如果你不想使用自定义验证,你可以使用这个

  validate: {
    isIn: {
      args: [['Nigeria', 'Ethiopia']],
        msg: "Must be Nigeria or Ethiopia"
    }
  }