序章

MEANは、次のコンポーネントで構成されるソフトウェアアプリケーションスタックです。

  • MongoDB 、サーバー側のJavaScript実行をサポートするNoSQLデータベース

  • ExpressJS 、Node.jsWebアプリケーションフレームワーク

  • AngularJS 、動的なシングルページアプリケーションの開発に適したWebアプリケーションフレームワーク

  • NodeJS 、スケーラブルなネットワークアプリケーションの構築に適した非同期イベント駆動型フレームワーク

MEANという用語は、Valeri Karpovによって最初に造られたものであり、この用語は各コンポーネントの最初の文字に由来しています。 Valeriは、このブログ投稿でMEANを定義しました。このブログ投稿では、MEANスタックを使用してJavaScriptアプリケーションを開発することを選択する動機をいくつか示しています。

全体を通してJavascriptを使用してコーディングすることで、ソフトウェア自体と開発者の生産性の両方でパフォーマンスの向上を実現できます。 MongoDBを使用すると、ドキュメントをJSONのような形式で保存し、ExpressJSおよびNodeJSベースのサーバーでJSONクエリを記述し、JSONドキュメントをAngularJSフロントエンドにシームレスに渡すことができます。 データベースに保存されているオブジェクトがクライアントのJavascriptに表示されるオブジェクトと本質的に同じである場合、デバッグとデータベース管理がはるかに簡単になります。 さらに良いことに、クライアント側で作業している人は、サーバー側のコードとデータベースクエリを簡単に理解できます。 全体を通して同じ構文とオブジェクトを使用することで、言語のベストプラクティスの複数のセットを検討する必要がなくなり、コードベースを理解するための参入障壁が軽減されます。

現在、MEANスタックには、MEAN.ioMEAN.JSの2つの並列実装があります。 それぞれにわずかに異なるインストール方法があります。 MEAN.JSは純粋にコミュニティ主導の実装ですが、MEAN.ioはLinnovateという会社が後援しています。 どちらも同じコンポーネントが含まれていますが、MEAN.ioは追加のコマンドラインツールを提供します。 mean、および商用サポート。

このガイドでは、MEAN.JSを使用してCentOS7サーバーにMEANスタックをインストールします。 この方法を使用するには、最初にMongoDBをインストールし、次にNodeJSをインストールしてから、GitHubからMEAN.JSファイルのクローンを作成します。

前提条件

開始するには、次のものが必要です。

  • 少なくとも4GBのRAMを搭載したCentOS7サーバー。 MEANスタックのコンポーネントの一部(次のような) npm、大量のメモリが必要です。

  • このCentOS7初期サーバーセットアップガイドを使用して構成されたsudo非rootユーザー。

ステップ1—依存関係のインストール

ソースからアプリケーションをコンパイルし、Gitリポジトリのクローンを作成し、Ruby gemをインストールするため、最初にいくつかの依存関係をインストールする必要があります。 libpng-develfontconfig MEAN.JSモジュール(pngquant)の1つで必要です。

  1. sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel

インストールするNode.jsモジュールの中には、CSS拡張言語であるSassが必要なものがあります。 を使用してインストールします gem、Rubyのパッケージマネージャー。

  1. sudo gem install sass

依存関係がインストールされたので、スタックの最初のコンポーネントであるMongoDBをインストールできます。

ステップ2—MongoDBをインストールする

MongoDBは公式のCentOSリポジトリにないため、インストールするには、公式のMongoDBリポジトリを有効にする必要があります。 これにより、最新のパッケージにアクセスして、そこからインストールできるようになります。

このチュートリアルでは、無料でダウンロードできるコミュニティエディションをインストールします。 Enterpriseエディションもありますが、ライセンスが必要なため、ここでは扱いません。

公開時点では、MongoDB3.2はダウンロードとインストールが可能な最新の安定版です。 リポジトリを有効にするには、下にリポジトリ用のファイルを作成します /etc/yum.repos.d、CentOSリポジトリディレクトリ。 MongoDB 3.2の場合、そのファイルを呼び出します mongodb.org-3.2.repo.

作成して開く /etc/yum.repos.d/mongodb.org-3.2.repo を使用して vi またはお気に入りのテキストエディタ。

  1. sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo

パッケージマネージャーが公式のMongoDBリポジトリーをポイントして有効にするには、以下をコピーしてファイルに貼り付けます。 設定 enabled=1 リポジトリと設定を有効にします gpgcheck=1 リポジトリからインストールされたすべてのパッケージでGNUPrivacyGuard(GPG)署名チェックをオンにします。

/etc/yum.repos.d/mongodb.org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

ファイルを保存して閉じてから、 mongodb-org MongoDBとその関連ツールをインストールするためのパッケージ。 GPGキーをインポートするように求められたら、次のように入力します y はいの場合:

  1. sudo yum install mongodb-org

インストールが完了したら、MongoDBデーモンを起動します。

  1. sudo systemctl start mongod

mongod、MongoDBデーモンが実行されているはずです。次のコマンドを使用して、これを確認できます。

  1. sudo systemctl status mongod

実行中の場合、出力は次のようになります。

Output
mongod.service - SYSV: Mongo is a scalable, document-oriented database. Loaded: loaded (/etc/rc.d/init.d/mongod) Active: active (running) since Tue 2016-09-06 12:42:16 UTC; 9s ago Docs: man:systemd-sysv-generator(8) Process: 9374 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS) CGroup: /system.slice/mongod.service └─9385 /usr/bin/mongod -f /etc/mongod.conf Sep 06 12:42:16 centos-mean-js systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database.... Sep 06 12:42:16 centos-mean-js runuser[9381]: pam_unix(runuser:session): session opened for user mongod by (uid=0) Sep 06 12:42:16 centos-mean-js mongod[9374]: Starting mongod: [ OK ] Sep 06 12:42:16 centos-mean-js systemd[1]: Started SYSV: Mongo is a scalable, document-oriented database..

インストールする必要があるスタックの次の部分はNode.jsです。

ステップ3—Node.jsをインストールする

Node.jsをインストールする簡単な方法の1つは、 NodeSourceNode.jsリポジトリのバイナリを使用することです。 まず、安定したブランチのリポジトリを追加します。 ブラウザでURLにアクセスすると、以下のコマンドを使用して、スクリプトを実行する前にスクリプトの内容を読むことができます。

  1. curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -

次に、Node.jsをインストールして npm、Node.jsのパッケージマネージャー。

  1. sudo yum install -y nodejs

Node.jsと npm インストールされています。

  1. npm version

出力は次のようになります。

Output
{ npm: '2.15.9', ares: '1.10.1-DEV', http_parser: '2.7.0', icu: '56.1', modules: '46', node: '4.5.0', openssl: '1.0.2h', uv: '1.9.1', v8: '4.5.103.37', zlib: '1.2.8' }

npm がインストールされると、MEANスタックの残りのコンポーネントをインストールできます。

ステップ4—BowerとGulpをインストールする

このステップでインストールするコンポーネントは、フロントエンドアプリケーションの管理に使用されるパッケージマネージャーであるBowerと、一般的なタスクの自動化に使用されるGulpです。

BowerとGulpの両方をグローバルにインストールする必要があります。これは、gオプションをに渡すことで実現します。 npm. 両方のアプリケーションをグローバルにインストールすると、ローカルプロジェクトのディレクトリからだけでなく、システム全体で利用できるようになります。

Bowerを最初にインストールします。

  1. sudo npm install -g bower

次に、Gulpをインストールします。

  1. sudo npm install -g gulp

これで、最終的にすべての前提条件パッケージがインストールされました。 アプリケーションの作成に使用される実際のMEAN.JSボイラープレートのインストールに進むことができます。

ステップ5—MEANボイラープレートの取り付け

まず、公式のMEAN.JSGitHubリポジトリのクローンを作成します。

  1. git clone https://github.com/meanjs/mean.git meanjs

これにより、MEAN.JSボイラープレートが次のディレクトリに複製されます。 meanjs ホームディレクトリにあります。 プロジェクトが参照するすべてのパッケージをインストールするには、そのディレクトリ内にいる必要があるため、そのディレクトリに移動します。

  1. cd ~/meanjs

次に、root以外のユーザーとして必要なパッケージをインストールします。

  1. npm install

インストールには数分かかります。 完了すると、MEANアプリケーションを開発するために必要なものがすべて揃います。 最後のステップでは、スタックをテストして、スタックが機能することを確認します。

ステップ6—サンプルのMEANアプリケーションを実行する

サンプルアプリケーションを実行して、システムが正しく機能していることを確認しましょう。 1つの方法は使用することです npm start、および他の方法は使用することです gulp. どちらのコマンドでも、アプリケーションを開発モードでテストできます。 ここでは、 npm.

  1. npm start

:これらのコマンドのいずれかの最初の実行は、次のような出力で失敗する可能性があります。

Error output
[12:56:49] 'lint' errored after 702 ms [12:56:49] Error in plugin 'run-sequence' Message: An error occured in task 'sass'.

このエラーが発生した場合、修正は簡単です。 それは削除することを含みます node_modules ディレクトリ、キャッシュをクリアしてから、パッケージを再インストールします。

  1. rm -rf node_modules
  2. npm cache clean
  3. npm install

次に、サンプルアプリを再起動します npm start また gulp 従来通り。

これで、次のWebサイトにアクセスしてMEANアプリケーションにアクセスできます。 http://your_server_ip:3000 お気に入りのブラウザで。 これにより、テキストを含むMEAN.JSロゴのあるページがレンダリングされます。 おめでとうございます! サンプルアプリケーションを構成して実行しました。 これは、サーバー上に完全に機能するMEANスタックがあることを意味します。

結論

必要なコンポーネントとMEAN.JSボイラープレートが揃ったので、独自のアプリの構築、テスト、デプロイを開始できます。 MEAN.JSの操作に関する具体的なヘルプについては、MEAN.JSWebサイトドキュメントを確認してください。