Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongooseJs:如何为必需的、唯一的索引和枚举失败设置自定义错误消息_Node.js - Fatal编程技术网

Node.js MongooseJs:如何为必需的、唯一的索引和枚举失败设置自定义错误消息

Node.js MongooseJs:如何为必需的、唯一的索引和枚举失败设置自定义错误消息,node.js,Node.js,我想用一些更用户友好的东西来定制它,但我不知道如何为必需的、唯一的索引和枚举失败设置自定义错误消息。我该怎么办?我认为您不能用所需的选项覆盖错误消息。如果您需要在模式中自定义消息,而不是在保存时,我认为您最好编写一个自定义验证器,如下所示: var userSchema = Schema({ email: { type: String, unique: true, match: /^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,4}$/,

我想用一些更用户友好的东西来定制它,但我不知道如何为必需的、唯一的索引和枚举失败设置自定义错误消息。我该怎么办?

我认为您不能用所需的选项覆盖错误消息。如果您需要在模式中自定义消息,而不是在保存时,我认为您最好编写一个自定义验证器,如下所示:

var userSchema = Schema({
  email: {
    type: String,
    unique: true,
    match: /^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,4}$/,
    lowercase: true,
    trim: true
  },
  nickname: {
    type: String,
    trim: true,
    required: true
  },
  password: { type: String, required: true },
  url: { type: String, trim: true, default: '' },
  role: {
    type: String,
    enum: [ 'admin', 'reader' ],
    default: 'reader'
  },
  about: { type: String, trim: true },
  created: { type: Date, default: Date.now, required: true }
});
function createdValidator(created) {
  return (created !== undefined && created !== null);
}

....

new Schema({created: { type: Date, default: Date.now, validate: [createdValidator, "custom error message"] } });
更新:

根据文档,您可以执行以下多种验证:

var userSchema = Schema({
  email: {
    type: String,
    unique: true,
    match: /^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,4}$/,
    lowercase: true,
    trim: true
  },
  nickname: {
    type: String,
    trim: true,
    required: true
  },
  password: { type: String, required: true },
  url: { type: String, trim: true, default: '' },
  role: {
    type: String,
    enum: [ 'admin', 'reader' ],
    default: 'reader'
  },
  about: { type: String, trim: true },
  created: { type: Date, default: Date.now, required: true }
});
function createdValidator(created) {
  return (created !== undefined && created !== null);
}

....

new Schema({created: { type: Date, default: Date.now, validate: [createdValidator, "custom error message"] } });

多个验证如何?是的,有一些关于进行多个验证的文档,我会更新我的答案以便格式化。