12

Express 3.x に express-validator を使用しています。ユーザーがパスワードを変更するか、新しいアカウントにサインアップするときに、パスワードを 2 回入力する必要があります。

2 つのパスワード (2 つの文字列) が一致しない場合、express-validator のエラー スタックにエラーをプッシュするカスタム バリデータを作成するにはどうすればよいですか?

このようなもの:

req.assert('password1', 'Passwords do not match').isIdentical(password1, password2);
var mappedErrors = req.validationErrors(true);
4

5 に答える 5

20

答えを見つけた

req.assert('password2', 'Passwords do not match').equals(req.body.password1);
var mappedErrors = req.validationErrors(true);
于 2012-09-23T00:31:46.333 に答える
5

これは機能します!

req.checkBody('password2','Passwords do not match.').equals(req.body.password1);
var errors = req.validationErrors();

この場合の使用に注意してくださいcheckBody()

于 2016-07-27T15:14:53.453 に答える
3

これが私が見つけた答えです

const { body } = require('express-validator/check');
app.post('/user', body('passwordConfirmation').custom((value, { req }) => {
if (value !== req.body.password) {
    throw new Error('Password confirmation does not match password');
    }
  }), (req, res) => {
// Handle the request
});`

このドキュメントを確認してください https://express-validator.github.io/docs/custom-validators-sanitizers.html

于 2018-08-14T15:14:12.740 に答える