Неправильно ли проверять пароли с помощью промежуточного ПО mon goose? - PullRequest
0 голосов
/ 14 января 2020

Итак, сейчас я использую пакет валидатора для проверки электронной почты

const validator = require('validator');

email: {
    type: String,
    required: [true, 'User must have a email'],
    unique: true,
    lowercase: true, //transform to lowercase
    validate: [validator.isEmail, 'Please provide a valid email']
  }

Итак, я обнаружил, что эта функция просматривает переполнение стека:

var validateEmail = function(email) {
    var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    return re.test(email)
};

var EmailSchema = new Schema({
    email: {
        type: String,
        trim: true,
        lowercase: true,
        unique: true,
        required: 'Email address is required',
        validate: [validateEmail, 'Please fill a valid email address'],
        match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
    }
});

Так что мне было интересно, как можно Я использую его или использую что-то подобное для запуска в качестве промежуточного ПО mon goose? и имеет ли смысл использовать его в качестве промежуточного программного обеспечения?

пример:

userSchema.pre('save'....)

1 Ответ

1 голос
/ 28 января 2020

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

Использование промежуточного программного обеспечения для проверки:

Я пробовал это раньше, и должен сказать, что довольно сложно сделать это правильно. Если вы определили промежуточное программное обеспечение как pre.('save', ...) (и это правильно использовать), как вы упомянули, в некоторых случаях вы пытаетесь обновить do c, промежуточное программное обеспечение не запускается, и вы Вы должны заботиться о тех ситуациях в отдельных задачах, которые трудно поддерживать, и вы не можете быть уверены, что они сработали, или вы не пропустили ни одного случая. Подробнее об этом топи c

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