gpt4 book ai didi

node.js - 枚举的 Mongoose 模型自定义错误消息

转载 作者:IT老高 更新时间:2023-10-28 13:32:13 24 4
gpt4 key购买 nike

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

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

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

相反,我执行以下操作。

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

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

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

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

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

关于node.js - 枚举的 Mongoose 模型自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37403907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com