ブレーンアシストオンライン

「MERN STACK」を構築してみよう

「MERN STACK」を構築してみよう

今回は、ここ数年注目されているMERN STACKについてまとめたので、
それをこの場を借りて紹介したいと思います。

MERN Stackとは?

MERN STACKとは、
MongoDB、Express.js、React.js、Node.jsで構成される
モダンアプリケーションです。

Frontend周りは、Reactで作成し、
Backendでは、Express.jsNode.jsで作成
最後にDBは、mongoDBで作成していきます。

全てを一回で説明するのは、かなり時間がかかってしまうので
今回は、Backend側の環境設定及び、各ディレクトリ、パッケージの説明から行います。

 

全体のディレクトリ構成の最終形

まずは、test-mernstackフォルダ内に、frontend、backendフォルダをそれぞれ作成しておきます。

backend側のディレクトリ構成の最終形

config, controllers, models, routesフォルダは先に作成しちゃっても構いません。

Backend

node_modulesフォルダの準備と、dependenciesのインストール

・node_modulesは?

npmでダウンロードしたパッケージが保存されているフォルダ。
例えば、tailwindcssをnpmでインストールした場合、tailwindcssを起動するための設定などが保存されます。

・dependenciesは?

dependenciesは、package.json内に記述されているなんのパッケージがインストールされているかを確認するところです。ここにパッケージ名、バージョンが記述されています。

・node_modulesフォルダの準備

まずは、backendフォルダ内に『server.js』ファイルを作成

・package.jsonファイルの作成

test-mernstackを右クリックして、ターミナルを開きます。
ターミナルで『npm init』と入力。指示にしたがって必要事項を入力。
ここで注意したいのが、デフォルトでは、entry pointが(index.js)になっているので、
先ほど、上で作成したserver.jsに変更する。root内に『package.json』が作成されました。

 

・dependenciesのインストール

次に今回使用する、パッケージ、dependenciesのインストールを行っていきます。
一つずつ説明していきます。

【bcryptjs】
ユーザーがパスワードを入力したパスワードをDBに保存する際にパスワードをハッシュし、暗号化してくれます。
セキュリティに優れており改ざんされるリスクはかなり減ります。

【colors】
開発環境で実行した内容のエラー、成功をターミナル上でカラー別で示してくれるパッケージです。

【concurrently】
フロントエンド側と、バックエンド側の開発環境を同時に実行できるパッケージです。

【dotenv】
DBなどに接続するときのURI、URL、個人所有のパスワード、IDなど直接ファイルに記述したくない情報を
.envファイル内に記述しておきます。
各ファイル内には、import で呼び寄せることができます。

【express】
node.jsのフレームワークのパッケージです。
もちろん、node.jsのみでも実行可能ですが、express.jsの方が分かりやすく、メンテナンスにも優れています。

【express-async-handler】
express routes内でシンプルなミドルウェアを扱えます。
また、passingしたroutesのexpressのエラーをだしてくれます。

【jsonwebtoken】
ご存じの通りのjsonwebtokenです。
データをやり取りする際に所有のユーザーのシグネチャーとしてtokenを生成してくれる
パッケージです。

【mongoose】
今回は、DBでMongoDBを使用しますが、その接続に便利なパッケージで、
DB内に格納するために必要な形式、Schemaを設定できるものです。
後ほど、詳しく説明します。

 

先ほどのパッケージを一度にインストールしてしまいましょう。
同じターミナル内で『npm i パッケージ名』
package.jsonファイルを見ると、dependenciesのところに下記がインストールされました。

 

あっ もう一つ大事なパッケージを忘れてました!

【nodemon】
nodemon は、node.jsベースのアプリケーションを開発環境で実行するときに
自動でリスタートしてくれる便利なパッケージです。
通常、server.jsファイルを開発環境で実行するときは、npm run serverのような記述が必要ですが、
nodemonを入れることによって、保存ボタンを押すことで自動的にリスタートしてくれます。

ちなみにnodemonは、開発環境のみで必要なので
インストールする際は、『npm i -D nodemon』で行います。
-Dの意味は、Development 開発の頭文字です。
もう一度、package.jsonファイルを見てみると
devDependenciesとして、パッケージがインストールされています。

今回は、ここまでといたします。

MERN STACKレクチャー第一回では、
MERN STACKについて、
全体のディレクトリ構成の確認、
バックエンド側のディレクトリ構成の確認、
node_modulesフォルダの準備と、dependenciesのインストール
を順を追って解説してきました。

この記事は、MERN STACKアプリケーションを作ることを目標にしています。
以上、ご視聴ありがとうございました。