Проверка формы Node.js - PullRequest
0 голосов
/ 14 января 2020

Как проверить неверный номер Проверки в пн goose? Есть ли специальный метод или ключевое слово? Модель. js указано ниже?

Модель. js


const Schema = mongoose.Schema;
const userSchema = new Schema({
  Username: {
    type: String,
    required: true
  },
  Password: {
    type: String,
    required: true
  }
});

userSchema.pre('save', async function (next) {
  try {
    const user = this;

    if (!user.isModified('Password')) {
      next();

    }

    const salt = await bcrypt.genSalt(10);
    const passwordHash = await bcrypt.hash(this.Password, salt);
    this.Password = passwordHash;
    next();
  } catch (error) {
    next(error);
  }
});


module.exports = User;

1 Ответ

0 голосов
/ 14 января 2020

Вы можете сделать это с помощью пользовательских валидаторов mon goose: https://mongoosejs.com/docs/validation.html#custom -validators Например, если вы хотите, чтобы ваш пароль содержал только цифры (используя RegEx):

const Schema = mongoose.Schema;
const userSchema = new Schema({
  Username: {
    type: String,
    required: true
  },
  Password: {
    type: String,
    required: true,
    validate: {
       validator: function(v) {
          return /^[0-9]*$/gm.test(v); // this is RegEx of validation only numbers : https://www.regextester.com/21
       },
       message: props => `${props.value} should be a number!`
    },
  }
});

userSchema.pre('save', async function (next) {
  try {
    const user = this;

    if (!user.isModified('Password')) {
      next();

    }

    const salt = await bcrypt.genSalt(10);
    const passwordHash = await bcrypt.hash(this.Password, salt);
    this.Password = passwordHash;
    next();
  } catch (error) {
    next(error);
  }
});


module.exports = User;```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...