克隆并修改`express-validator`链

时间:2018-01-23 16:52:19

标签: javascript express-validator

如何克隆express-validator链并使其成为可选项,而不影响原始链?例如,请考虑以下示例:

var checkPassword = body('password').trim().isLength({min: 10});
var checkPasswordOptional = checkPassword.optional();

// Creates an account.
router.post('/accounts', checkPassword, createAccount);

// Updates an account. Only provided fields are updated.
router.put('/accounts/:id', checkPasswordOptional, updateAccount);

但有了这个,checkPasswordcheckPasswordOptional都会成为可选项。

1 个答案:

答案 0 :(得分:1)

克隆链尚不支持。

但是,您可以使用可以根据需要多次生成相同验证器链的工厂函数:

const createPasswordCheck = () => body('password').trim().isLength({ min: 10 });

// Uses the default password validation chain    
router.post('/accounts', createPasswordCheck(), createAccount);

// In addition to the default set of password validations,
// updating an account also makes it optional.
router.put('/accounts/:id', createPasswordCheck().optional(), updateAccount);

免责声明:express-validator维护者在这里。