Я запускаю приложение 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' и проверять каждое поле, но я хотел бы понять, как установить это правильно.