Express.js Node.js プログラミング

【Express.js】Express.jsでリクエストバリデーションを強化する express-validatorの使い方

Express.jsを使用してWebアプリケーションを開発する際、クライアントからのリクエストデータの信頼性を確保するためにリクエストのバリデーションが必要不可欠です。

本記事では、Express.jsアプリケーションでリクエストのバリデーションを行うための強力なツールであるexpress-validatorについて解説します。express-validatorを使うことで、コードを簡潔に保ちながらも、効果的にリクエストデータのバリデーションを実装できます。

express-validatorの導入

express-validatorを使うためには、まずNode.jsプロジェクトにパッケージをインストールする必要があります。以下のコマンドを使用して、パッケージをインストールします。

npm install express-validator

Expressアプリケーションにexpress-validatorを統合する

Expressアプリケーションでexpress-validatorを使用するには、ミドルウェアとしてexpress-validatorを統合する必要があります。以下は、Expressアプリケーションにexpress-validatorを統合する例です。

const express = require('express');
const { body, validationResult } = require('express-validator');

const app = express();

app.use(express.json());

app.post('/api/users', 
  body('username').isString(),
  body('email').isEmail(),
  (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    // リクエストの処理
  });

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

バリデーションルールの定義

express-validatorを使用すると、簡単にバリデーションルールを定義できます。

以下の例では、isString()isEmail()などの組み込みのバリデーションルールを使用しています。

body('username').isString(),
body('email').isEmail(),

カスタムバリデーションの追加

特定のビジネスロジックに合わせてカスタムバリデーションルールを定義することも可能です。以下は、未成年の場合にエラーを返すカスタムバリデーションの例です。

body('age').custom((value) => {
  if (value < 18) {
    throw new Error('You must be at least 18 years old');
  }
  return true;
}),

まとめ

express-validatorは、Express.jsアプリケーションでリクエストのバリデーションを効果的に行うための強力なツールです。

組み込みのバリデーションルールやカスタムバリデーションを組み合わせることで、信頼性の高いリクエストの処理が可能となります。
express-validatorを使って、安全かつ堅牢なExpress.jsアプリケーションを構築しましょう。

おすすめ記事はコチラ

スマレジ テックファーム 1

スマレジ テックファーム で Webエンジニアとして勤めている tomoです。 今回は株式会社スマレジや私が所属している 「 スマレジ テックファーム 」についてPRしていきたいと思います。 スマレジ ...

2

FromBody 属性を使用して、 ASP.NET Core(.NET 6)のWebAPIでBodyパラメータのJSONを受け取る方法を解説します。 FromBody 属性 POSTやGETで呼び出さ ...

PC picture 3

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。 Cookieの有効期限について Cookieには通常はタイムアウト(有効期限)を設定します。 基本 ...

4

ASP.NET Core(.NET 6)でクロスオリジンリクエスト ( CORS )を設定する方法を解説します。 簡単に クロスオリジンリクエスト ( CORS )とは何かについても少し解説したいと思 ...

-Express.js, Node.js, プログラミング
-, , , , ,