Валидаторы Nest JS MongoDB не работают - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь использовать проверку в схеме ниже

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';

@Schema({
  validateBeforeSave: true,
})
export class User extends Document {
  @Prop({
    unique: [true, 'login field must be unique'],
    required: [true, 'login field must be defined'],
  })
  login: string;

  @Prop({
    required: [true,'password required'],
    minlength: 4,
  })
  password: string;

  @Prop({
    type: Date,
  })
  createdAt: Date;

export const UserSchema = SchemaFactory.createForClass(User);

Но ничего не произошло, когда я сохранил нового пользователя без пароля.

В чем может быть проблема?

1 Ответ

0 голосов
/ 04 августа 2020

Я думаю, вам нужно вызвать метод validate на модели, например:

const User = db.model('User', userSchema);
const user = new User();

user.email = 'test@test.co';
user.name = 'test';
user.validate().catch(error => {
  assert.ok(error);
});

Проверить документацию Пн goose Проверка , даже если они говорят, что он будет работать на save метод, я просто позвоню validate перед тем, чтобы быть на 100% уверенным, они его проверят.

...