Куда положить дезинфицирующее средство для проверки express? - PullRequest
0 голосов
/ 02 мая 2020

Я запускаю приложение express, которое проверяет почтовый маршрут, если поля в порядке:

const { body, sanitizeBody, validationResult } = require('express-validator');
exports.freelancer_create_post = [
  // Validate fields.
  body('family_name').isLength({ min: 1 }).trim().withMessage('Family name must be specified.'),
  body('date_of_birth', 'Invalid date of birth').optional({ checkFalsy: true }).isISO8601(),
  body('email_address').isEmail().withMessage('Must be a valid email address.'),
  // Sanitize fields.
  sanitizeBody('date_of_birth').toDate(),
  sanitizeBody('email_address').normalizeEmail(),
  sanitizeBody('family_name').escape(),
  sanitizeBody('username').escape(),
(req, res, next) => {...}
];

Работает нормально. Но теперь я хотел бы добавить его в цепочку промежуточного программного обеспечения локальной стратегии для паспорта js:

const { body, sanitizeBody, validationResult } = require('express-validator');
exports.localStrategy = function (passport) {
    // Configure the local strategy for use by Passport.
    passport.use(new Strategy({
        usernameField: 'email',
        passwordField: 'password',
        passReqToCallback: true,
    },
     [body('family_name').isLength({ min: 1 }).trim().withMessage('Family name must be specified.')],
     (req, email, password, cb) => {...}
    ))
};

Как бы я это сделал?

Я пытался вставить массив между (см. код выше), но он возвращает ошибку TypeError: this._verify is not a function.

Грязное решение состоит в том, чтобы использовать модуль 'mon go -sanitize' и проверять каждое поле, но я хотел бы понять, как установить это правильно.

...