【マーン】

MERN とは?

最終更新:
💡 四つの技術を組み合わせて、Webアプリを作る

MongoDB・Express・React・Node.jsを組み合わせるWeb開発の構成。画面、サーバー、データベースの役割と、JSON・BSONや入力検証の違いを解説します。

📌 このページのポイント
MERN:画面・サーバー・データの三層React:利用者が操作する画面ブラウザー側の例要求応答サーバー側:API・業務処理Express:Webの要求を扱うNode.js:JavaScript実行環境読み書き結果MongoDB:データベースドキュメントをBSONで保存型・権限・入力検証は別に設計DBの認証情報を画面側のコードへ入れない
ExpressはNode.js上で動き、独立した別の通信層ではありません。画面はサーバーのAPIへ要求し、サーバーがMongoDBを扱う例です。
ひよこ ひよこ
MERNは、何というソフト?
ペンギン先生 ペンギン先生
一つのソフトではなく、MongoDB・Express・React・Node.jsを組み合わせる構成だよ。MongoDBはデータの保存、ExpressとNode.jsはサーバー側の処理、Reactは利用者が操作する画面を担当する。
ひよこ ひよこ
ExpressとNode.jsは、同じもの?
ペンギン先生 ペンギン先生
Node.jsはJavaScriptを実行する環境。Expressは、その環境でWebの要求を受けたり、応答を返したりするためのフレームワークだよ。Expressだけで実行環境を置き換えるわけではないんだ。
ひよこ ひよこ
画面から、データベースへ直接つなぐ?
ペンギン先生 ペンギン先生
この構成の一般的な例では、Reactの画面がサーバーのAPIへ要求し、サーバーがMongoDBを読み書きする。データベースの認証情報を画面のコードへ入れず、サーバー側で利用者の権限や入力を確認しよう。
ひよこ ひよこ
データは全部JSONだから、変換は不要?
ペンギン先生 ペンギン先生
MongoDBが保存するのはBSONというバイナリ形式のドキュメントだ。JSONより多くの型を扱えるよ。APIでJSONを使う場合も、日時やIDなどをどう表すか、値をどう読み取るかを設計する。JavaScriptのオブジェクトがそのまま無条件に保存されるわけではない。
ひよこ ひよこ
全部JavaScriptなら、開発は簡単?
ペンギン先生 ペンギン先生
言語の知識を使い回せる利点はあるけれど、画面、通信、保存の設計まで同じになるわけではない。認証、入力検証、エラー、更新やバックアップも考えるよ。MERNを選ぶだけで、性能や安全性が保証されるわけではないんだ。
もっと詳しく知りたい人へ

MongoDBなら、データ構造を決めなくてよい?

柔軟なドキュメントを扱えますが、必要な項目や型、検索方法を設計します。APIで受け付ける値の検証も必要です。柔軟に保存できることと、どんな値でも正しく扱えることは別です。

Reactだけで、MERNになる?

なりません。MERNは四つの技術を組み合わせる名前です。Reactは別のサーバーやデータベースとも使えます。必要な処理と運用に合う構成を選びます。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「MERN」って出てきたら「MongoDB・Express・React・Node.jsを組み合わせるWeb開発の構成」と思えばだいたいOK!
📖 おまけ:英語の意味
「MongoDB, Express, React, Node.js」 = 四つの技術の頭文字
💬 一つの製品名ではなく、組み合わせる技術の呼び方です。それぞれの役割を理解して使います。

参考資料

← 用語集にもどる