экспресс-валидатор игнорирует недействительные поля

как я могу игнорировать недействительные поля?

я хочу просто получить все проверенные поля в req.body

пример:

ПОЧТА: http://127.0.0.1:3000/api/auth/signup


проверитьСхема:

проверка имени, электронной почты и пароля

      checkSchema({
    name: {
        isAlpha: {
            errorMessage: 'Your name must contain letters only',
        },
        isLength: {
            errorMessage: 'First name must be between 3 and 10 chars',
            options: {
                min: 3,
                max: 10,
            },
        },
    },
    email: {
        isEmail: {
            errorMessage: 'Email is not valid',
        },
        custom: {
            options: async (value, { req }) => {
                const user = await User.findOne({ where: { email: value } });
                if (user) throw new Error('Email already used');
                return true;
            },
        },
        normalizeEmail: [],
    },
    password: {
        notEmpty: {
            errorMessage: 'Choose a password for your account',
        },
        isLength: {
            errorMessage: 'Password must be between 6 and 30 chars',
            options: {
                min: 6,
                max: 30,
            },
        },
        custom: {
            options: (value, { req }) => {
                if (value !== req.body.confirm_password) throw new Error('Please confirm your password');
                return true;
            },
        },
    },
});

теперь в req.body я получаю все поля

      {
    "name" : "Johen",
    "password" : "123456789",
    "confirm_password" : "123456789",
    "email" : "john@gmail.com",
    "role" : "admin" <-- i don't want this
}

как я могу предотвратить это? я хочу, чтобы req.body содержал только те поля, которые я проверил, и игнорировал все остальные поля?

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

const {name,email,password} = req.body;

но я не хочу этого.

я хочу удалить поля, которых нет в checkSchema

0 ответов

Другие вопросы по тегам