Mongoose 模型枚举的自定义错误消息

2023-11-23

我想自定义我的 Mongoose 模型生成的验证消息。

我倾向于不直接将我的验证(例如必需的)放在模式对象上,因为没有自定义错误消息的自由。 例如

sourceAccountId: {
  type: Schema.ObjectId,
  require: true,
  ref: 'Account'
}

相反,我执行以下操作。

sourceAccountId: {
  type: Schema.ObjectId,
  ref: 'Account'
}

ConnectionRequestSchema.path('sourceAccountId').required(true, 'Source Account is required.');

当字段具有枚举约束时,我一直无法找到覆盖默认枚举消息的方法。

下面列出了我的模型,状态验证消息对于必需的工作正常,但不适用于枚举。

'use strict';

var _ = require('lodash');

var mongoose = require('mongoose');

var Schema = mongoose.Schema;

var ConnectionRequestSchema = new Schema({
  created_at: { type: Date },
  updated_at: { type: Date },

  sourceAccountId: {
    type: Schema.ObjectId,
    ref: 'Account'
  },

  status: {
    type: String,
    enum: ['pending', 'accept', 'decline'],
    trim: true
  }
});

// ------------------------------------------------------------
// Validations
// ------------------------------------------------------------

ConnectionRequestSchema.path('sourceAccountId').required(true, 'Source Account is required.');
ConnectionRequestSchema.path('status').required(true, 'Status is required.');
//ConnectionRequestSchema.path('status').enum(['pending', 'accept', 'decline'], 'Status is invalid, valid values include [pending, accept, decline]');

// ------------------------------------------------------------
// Save
// ------------------------------------------------------------

ConnectionRequestSchema.pre('save', function (next) {
  var now = new Date().getTime();

  this.updated_at = now;
  if (!this.created_at) {
    this.created_at = now;
  }

  next();
});

module.exports = mongoose.model('ConnectionRequest', ConnectionRequestSchema);

尝试类似的事情:

var enu = {
  values: ['pending', 'accept', 'decline']
, message: 'Status is required.'
}


var ConnectionRequestSchema = new Schema({
  ...

  status: {
    type: String
  , enum: enu
  , trim: true
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongoose 模型枚举的自定义错误消息 的相关文章

  • engine.io 与 socket.io 有何不同?

    LearnBoost 似乎有一个新项目叫做引擎 io https github com LearnBoost engine io理论上似乎与socket io 类似 1 在什么情况下您会使用其中一种而不是另一种 2 对于需要通过node j
  • Mongo $group 和 $project

    我正在尝试获取关键字计数parentId categioryId and llcId 我的数据库是 id ObjectId 5673f5b1e4b0822f6f0a5b89 keyword electronic content manage
  • Dialogflow 简单的授权方法

    是否存在将 Dialogflow 代理连接到的简单方法node js代码 当我将此代码与从 Dialogflow 代理的设置页面获取的正确项目 ID 一起使用时 出现以下错误 错误 获取应用程序默认凭据时出现意外错误 无法加载默认凭据 浏览
  • 枚举类型的 JAXB 元素

    所以我知道如何创建枚举类型 但是当我为其设置元素类型时 元素字段将只是字符串类型 而不是枚举类型 如何在我的模式中创建枚举并让 JAXB 将其生成为 java 枚举类型 这就是我创建枚举类型和元素的方式
  • require('babel/register') 不起作用

    我在客户端上有一个用 ES6 编写的同构应用程序Babel 转译器 http babeljs io 我希望我的 Express 服务器具有与客户端代码相同的 ES6 语法 很遗憾require babel register 不起作用 服务器
  • 喜欢和不喜欢用户对产品的评论

    用户架构 var UserSchema new Schema review likes type String review dislikes type String 审查架构 var ReviewSchema new Schema pro
  • 如何根据键名称反序列化为枚举变体?

    我有两种形式的 JSON Example field 42 A 76 Example field 42 B 110 我想将它反序列化成这样的结构 struct Example field i32 an enum AnEnum where e
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • 使用mockery和sinon模拟类方法

    我正在学习使用带有 sinon 的节点模块模拟进行单元测试 仅使用模拟和普通类 我就可以成功注入模拟 不过 我想注入一个 sinon 存根而不是一个普通的类 但我在这方面遇到了很多麻烦 我试图嘲笑的班级 function LdapAuth
  • 我应该在哪里对对象和字段进行 django 验证?

    我正在创建一个 Django 应用程序 它使用 Django Rest Framework 和普通的 django views 作为用户的入口点 我想对模型的独立字段以及整个对象进行验证 例如 字段 根据正则表达式函数输入的车牌是否正确 与
  • 在 shell/shell 脚本中设置 MongoDB 写关注

    我正在尝试填充一个集合MongoDB的壳 据我了解 使用轻松的Write Concern可以大大加快这个过程 我说的是文档 http docs mongodb org manual core write concern write oper
  • mongo BadValue 未知运算符:$or

    该集合有一份文档 id ObjectId 54b513933aca242d9915a787 carriers carrier ObjectId 54b54d223aca242d9915a788 carryingInterval from I
  • express-session:滚动会话过期配置

    所以我在 mongo 商店中使用快速会话 如下所示 app use session secret some secret here saveUninitialized false resave false store new MongoSt
  • 如何在 Sails.js 中嵌入和编写 mongo 对象(超过一层深度)?

    从 sails js 示例来看 Person js var Person attributes firstName STRING lastName STRING age type INTEGER max 150 required true
  • Spring Data mongodb:添加 MongoDb 访问凭据

    我的 Spring 应用程序中有以下工作配置
  • MongoDB 中两个集合之间的 Diff()

    我做过研究 如果这是一个重复的问题 我很抱歉 但其他问题的解决方案并不适合我 因此 我提出了一个新问题 使用 Javascript 比较两个集合的最佳方法是什么 我有数千个这样的 Mongo 文档格式的标头 url google com h
  • 如何从 Java 中的常量向注释提供枚举值

    我无法使用从常量获取的枚举作为注释中的参数 我收到此编译错误 注释属性 attribute 的值必须是枚举常量表达式 这是枚举代码的简化版本 public enum MyEnum APPLE ORANGE 对于注释 Retention Re
  • MongoDB insertMany 并跳过重复项

    我试图insertMany https docs mongodb com manual reference method db collection insertMany 项目进入我的 Mongo 数据库 但我想跳过重复的 ID 我在用着N
  • MongoDB 嵌套数组查询

    我问这个作为评论another https stackoverflow com questions 5250652 query a nested array in mongodb问题 还发了一个question https groups g
  • 枚举上的 random.choice

    我想用random choice on an Enum I tried class Foo Enum a 0 b 1 c 2 bar random choice Foo 但是这段代码失败了KeyError 我怎样才能随机选择一个成员Enum

随机推荐

  • 为什么 Google Play 商店没有显示应用程序设备不可用的原因?

    我是移动应用程序开发人员 也从事本机和 Phone Gap 方面的工作 我在 Phonegap 中构建了一个应用程序 该应用程序在设备中完美运行 但在某些选项卡中无法运行 我在这里找到的Google Play 商店政策 但是为什么他们没有显
  • 如何将项目添加到 magento 面包屑中

    我想在用户在 magento 前端导航我自己的模块时显示面包屑 该网站已经有适当的面包屑代码 可以根据标准 magento 面包屑在其他地方使用 我需要在模块中做什么来指定当前的面包屑路径 我希望能够以编程方式执行此操作 而不是在面包屑 p
  • postgresql 中不存在函数 min(uuid)

    我使用 sqoop 将表从 Postgres 导入到 hdfs 我的表有 uuid 字段作为主键 我的命令 sqoop 如下 sqoop import connect jdbc postgresql localhost 5432 mydb
  • R reshape2 中的cast()调用的自定义聚合函数出错

    我想使用 R 将具有非唯一行名称的表中的数字数据汇总到具有唯一行名称的结果表 并使用自定义函数汇总值 汇总逻辑是 如果最大值与最小值之比reshape2包裹 example table with non unique row names t
  • R 中的情感分析(不使用 tm.plugin.tags)

    我正在使用 R 版本 3 0 2 并已安装该软件包tm 之前我还加载了一个名为tm plugin tags 为了衡量文本语料库是正面还是负面 我使用了以下方法 library tm library tm plugin tags pos lt
  • eclipselink/Moxy:基于类型的继承和属性名称重载

    我面临着使用 MOXy 的 JAXB 实现和外部元数据绑定文件进行继承和多态性的编组 解组问题 我无法控制 XML 文件或模型类 模型内部有多个继承其他 DTO 类的类 这是我正在工作的环境的示例 这个示例仅出于某些语法目的 真实的环境涉及
  • 启动定位策略

    我通过 GPS 定期接收位置更新 问题是距离第一次位置更新发生的时间 太长了 当用户在建筑物内时 情况会变得更糟 因此我正在寻找一些策略来改善启动时间 目前我不使用getLastKnownLocation但我会 我开始读书深入了解位置得到一
  • PHP 7.2 中 mcrypt_encrypt 的完全替代方案

    由于 PHP 7 2 不再支持 mcrypt crypt 我正在尝试精确替代该函数 在阅读了许多 SO 答案后 我发现以下代码使用 PHPSECLIB 但它没有生成与 mcrypt 一样的精确加密文本 function encryptRJ2
  • XAML:如何仅在设计模式下更改背景颜色?

    我有一个具有白色文本前景色和透明背景色的控件 稍后此用户控件将被添加到带有真实背景颜色的不同控件中 然而在设计过程中 在VS 2010中控制白色背景上的白色前景 我明显看不到任何东西 无论如何 要在设计时定义不同的颜色吗 我已经尝试过这个
  • 生成二维数组的梯度图

    我有一个二维数组 它将每个点的属性值存储为其元素 f x y f x y 现在我想找到这个数组的梯度 我调查了np gradient但它只给出两个数组作为返回 第一个在 x 方向上具有导数 第二个在 y 方向上具有导数 我想了解如何使用此方
  • 如何在按下按钮时继续执行工作?

    我想在按下按钮时使用 Java 继续执行工作 当释放按钮时 工作应该停止 像这样的东西 Button is pressed for int i 0 i lt 100 i count i print count 我怎样才能实现这个目标 One
  • TypeScript 中必需的泛型类型与推断的泛型类型

    以下泛型类型之间有什么区别 type FnWithRequiredParam
  • 如何获取 Solr 中最后一个索引记录?

    我想知道如何获取 搜索 Apache Solr 中的最后一个索引记录 当现有记录更新时 它会转到所有记录的末尾 所以我想获取最后一个索引记录 thanks 您可以将 时间戳 字段添加到 Solr 架构中 该字段在添加时将当前日期 时间放入记
  • 如何读取带有 Alpha 通道的 gif 动画

    在 MATLAB 中对 gif 动画进行一些测试时 我意识到我无法读取 gif 的透明度 Example gif的原始来源 If I do img cmap imread Finnandjake gif img是 4D 具有冗余的第三维 奇
  • Joi 验证正则表达式或模式

    我想加入使用在变量中定义的正则表达式模式 我有一个变量pattern其中包含正则表达式 IE pattern 0 9 7 0 9 1 这个模式发送到 Joi 模块并想要确认 module exports save body match Jo
  • 无 RDP 时自动发送密钥失败

    我有一个虚拟机 我希望在其上运行自动化任务 即自动化任务在实际虚拟机上运行 VM 是 Windows 2008 服务器 我已将该任务添加到任务计划程序中 当我通过 RDP 登录到计算机时 我可以通过右键单击 运行 来运行该任务 但是 当我的
  • switch语句:default必须是最后一种情况吗?

    考虑以下switch陈述 switch value case 1 return 1 default value fall through case 2 return value 2 该代码可以编译 但它对于 C90 C99 有效 定义的行为
  • 将大图像加载到位图中?

    我正在尝试制作一个显示来自相机的图像的基本应用程序 但是当我尝试使用 sdcard 加载 jpg 时BitmapFactory decodeFile 它返回 null 它不会给出我觉得奇怪的内存不足错误 但完全相同的代码在较小的图像上运行良
  • 文件名包含空格的 Shell 脚本问题

    我知道处理文件名中空格的一种技术是用单引号将文件名引起来 为什么下面的代码 echo sh 可以在包含带空格的文件名的目录上工作 但是程序 ls sh 却不起作用 唯一的区别是 echo 被 ls 替换了 echo sh bin sh fo
  • Mongoose 模型枚举的自定义错误消息

    我想自定义我的 Mongoose 模型生成的验证消息 我倾向于不直接将我的验证 例如必需的 放在模式对象上 因为没有自定义错误消息的自由 例如 sourceAccountId type Schema ObjectId require tru