Субдокументы проверки мангуста не работают - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь использовать встроенный валидатор mongoose для работы с «ключами» вложенного документа

Я создал keySchema и пытаюсь использовать его как поддокумент

keys: {
 required: true,
 type: [keySchema]
}

Я отправляю запрос через почтальона

{
  "name": "dasas"
}

Но вместо того, чтобы выдавать ошибку, запись создается внутри коллекции

Ниже файл моей модели

const mongoose = require('mongoose');
const constant = require('./base.constants');
const Schema = mongoose.Schema;

const keySchema = Schema({
  name: {
    type: String,
    maxLength: 100,
    required: [true, constant.KEY_NAME_REQUIRED_ERROR],
    validate: {
      validator: function (str) {
        return constant.NO_SPACE_REGEX.test(str);
      },
      message: constant.KEY_NAME_VALIDATION_ERROR
    }
  },
  type: {
    type: String,
    required: true,
    enum: ['input', 'dropdown']
  },
  values: {
    type: [String]
  }
});

const baseSchema = Schema({
  name: {
    type: String,
    required: [true, constant.BASE_NAME_REQUIRED_ERROR],
    unique: true,
    maxLength: 100,
    validate: {
      validator: function (str) {
        return constant.NO_SPACE_REGEX.test(str);
      },
      message: constant.BASE_NAME_VALIDATION_ERROR
    }
  },
  keys: {
    required: true,
    type: [keySchema]
  }
}, {
  timestamps: true
});


module.exports = mongoose.model('Base', baseSchema);
...