2

サーバーの検証に使用express-validatorしていますが、日付の検証で少し問題が発生しました。開始日が終了日より前であることを確認しようとしています。私は現在これを使用しています:

check('taskStartDate', { isBefore : ('taskEndDate' === undefined ) })
.isBefore('taskEndDate').withMessage('Start Date must be before End Date')

ただし、それに関する問題は、フォームに入力した日付に関係なく、開始日が終了日の前後であっても、実装されたメッセージ「開始日は終了日より前でなければなりません」が表示されます。カスタムバリデータ以外にこれを行う方法がわかりません。それが推奨される方法である場合、カスタムバリデーションの作成方法に関するガイダンスをいただければ幸いです。私はまた、次のようにサニタイズを含めようとしました:

check('taskStartDate').isBefore(sanitizeBody('taskEndDate').toDate())
.withMessage( 'Start Date must be before End Date.')

しかし、それもうまくいきませんでした。どんな助けでも大歓迎です!

4

3 に答える 3

1

入力された生年月日 (dob) が有効かどうか、つまり今日の日付より前かどうかを確認するためのカスタム バリデータを次に示します。

check('dob').custom(value=>{
    let enteredDate=new Date(value);
    let todaysDate=new Date();
    if(enteredDate>todaysDate){
        throw new Error("Invalid Date");
    }
    return true;
})

dob= 生年月日の入力フィールド名

于 2020-05-12T10:31:05.113 に答える