0

エクスプレス用のエクスプレスバリデータープラグインを使用しています

var input = {
            'username': {
                notEmpty: true,
                isEmail: {
                    errorMessage: 'Invalid Email.'
                }
            },
            'password': {
                notEmpty: true,
                errorMessage: 'Invalid Password' // Error message for the parameter
            }
        };

    req.checkBody(input);
    var errors = req.validationErrors();
    if (errors) {
        console.log(errors);
    }

ユーザー名を空の出力として渡すと、

[ { param: 'username', msg: 'Invalid param', value: '' },
  { param: 'username', msg: 'Invalid Email.', value: '' },
  { param: 'password', msg: 'Invalid Password', value: '' } ]

検証の誰かが失敗した場合にチェーンを停止する方法。

4

2 に答える 2

2

これに対する修正は、v3.0.0 でついに行われました!

req.getValidationResult().then( result => {
    var errors = result.useFirstErrorOnly().array();
    // enjoy an array with no duplicated errors for any given parameter!
});

更新: Express-validator の新しいバージョンでは、次のようにオプションを渡すことができますvalidationResult.array():

var errors = validationResult(req).array({ onlyFirstError: true });
于 2016-11-25T06:07:44.027 に答える
1

空のパラメータのエラーメッセージを追加する必要があるようです:

username: { notEmpty: { errorMessage: 'ユーザー名は空であってはなりません' }, isEmail: { errorMessage: '無効な電子メールです。' } }...

于 2017-04-17T09:25:42.043 に答える