Express.jsを使用してWebアプリケーションを開発する際、リクエストデータの信頼性を確保するためにリクエストのバリデーションが必要不可欠です。
この記事では、Express.jsアプリケーションでリクエストのバリデーションを行うための強力なツールであるexpress-validator
の組み込みルールについて詳しく解説します。これらのルールを理解することで、安全で信頼性の高いアプリケーションを構築するのに役立ちます。
isEmpty
フィールドが空であるかどうかを検証します。主に必須項目であるかどうかを確認する際に使用されます。
const { body } = require('express-validator');
body('username').notEmpty(),
isString
フィールドが文字列かどうかを検証します。主に文字列の入力を必要とする場合に使用されます。
const { body } = require('express-validator');
body('username').isString(),
isNumeric
フィールドが数値かどうかを検証します。主に数値の入力を必要とする場合に使用されます。
const { body } = require('express-validator');
body('age').isNumeric(),
isBoolean
フィールドが真偽値かどうかを検証します。主にチェックボックスやラジオボタンなどの入力を検証する際に使用されます。
const { body } = require('express-validator');
body('agree').isBoolean(),
isEmail
フィールドが有効なメールアドレスの形式かどうかを検証します。メールアドレスの入力を必要とする場合に使用されます。
const { body } = require('express-validator');
body('email').isEmail(),
isLength
フィールドの長さが指定された範囲内かどうかを検証します。主にパスワードやテキストの入力長を制限する際に使用されます。
const { body } = require('express-validator');
body('password').isLength({ min: 6, max: 20 }),
isURL
フィールドが有効なURL形式かどうかを検証します。URLの入力を必要とする場合に使用されます。
const { body } = require('express-validator');
body('website').isURL(),
isIn
フィールドの値が指定された配列内に存在するかどうかを検証します。主にドロップダウンメニューやラジオボタンなどの入力を検証する際に使用されます。
const { body } = require('express-validator');
body('gender').isIn(['male', 'female', 'other']),
matches
フィールドの値が指定された正規表現パターンと一致するかどうかを検証します。カスタムな形式の入力を検証する際に使用されます。
const { body } = require('express-validator');
body('code').matches(/[A-Z0-9]{6}/),
custom
カスタムバリデーション関数を定義して、任意のバリデーションロジックを実行します。特定の条件に基づいたカスタムなバリデーションを行う際に使用されます。
const { body } = require('express-validator');
body('age').custom((value) => {
if (value < 18) {
throw new Error('You must be at least 18 years old');
}
return true;
}),
まとめ
これらの組み込みのバリデーションルールを組み合わせて、Express.jsアプリケーションでリクエストのバリデーションを効果的に行うことができます。express-validator
を使って、安全かつ信頼性の高いアプリケーションを構築しましょう。