フロント、サーバー両方で使用することができ、Webサイトやアプリケーション、ゲームなど様々なプロダクトを作ることができるのが「Node.js」です。初めてアプリを作ってみたい人にも「Node.js」はおすすめです。
この記事ではそんな「Node.js」の特徴からインストール方法まで詳しく紹介します。
公開日:2018年8月13日
専門領域:Node.js, MongoDB, AWS, Docker, Kubernetes
津郷 晶也
メーカー研究開発時代、当時では珍しいSPAの開発や特許開発を行う。その後、SIer時代には億を超える規模のWebサービスのアプリ開発、現在もIT会社で引き続き大規模なWebサービス開発を実践。また、IPA資格(高度)ではPM、セキュリティ、DBの3つを取得。個人が展開する技術ブログは2012年から始めて記事300本以上執筆、多い時には10万PV/月を超えるほどのブログに成長。
…続きを読むNode.jsとは?
Node.jsは2009年にリリースされた、サーバーサイド用のJavaScriptアプリケーションのプラットフォームです。一言でいうと、Node.jsはサーバーサイドのJavaScriptです。
Node.jsの大きな特徴は、普段はブラウザで活用されているプログラミング言語「JavaScript」をサーバーサイドやデスクトップで活用できることです。
先ほど、Node.jsはサーバーサイドのJavaScriptと言いましたが、最近ではNode.jsはフロントエンド(クライアントサイド)の開発でも使われることがあります。
また、Node.jsでのリクエストやレスポンスなどの処理はシングルスレッドで処理されるので、大量のアクセスを処理できるという特徴があります。
Node.jsの特徴やメリットをご紹介
続いて、Node.jsの特徴、そして利用するメリットを紹介しましょう。
①大量のデータ処理が可能
Node.jsはノンブロッキングI/Oモデルを採用しています。そのため、I/Oの処理を待たずに次の処理を始めることができるので、大量のデータ処理などが可能です。
②メモリの消費が少なく動作も速い
Node.jsはイベントループを採用しています。そのため、複数のリクエストやレスポンスなどの処理は順番にイベントループで処理されていきます。
イベントループによってCPUを抑えることができるため、メモリの消費が少なく動作も速いです。
③処理速度が非常に速い
Node.jsのエンジンはGoogleが開発したJavaScript実行エンジンである「Google V8 JavaScript Engine」であるため、処理速度が非常に速いです。
④サーバーサイドで使える
Node.jsはサーバーサイドでも動きます。以前までプログラミング言語「JavaScript」はサーバーサイドでは使用できませんでしたが、Node.jsの誕生により実行することが可能になりました。
Node.jsで開発できるものとは?
特徴がわかってきたところで、Node.jsで開発できるものを紹介しましょう。非常に多くの開発に活用できるため、覚えておいて損はないと言えます。
Webサイト
Node.jsにはWebサイトの開発に使える多くのフレームワークが用意されていて、それらを活用すれば簡単にウェブサイトを制作、構築することが可能です。
Webアプリケーション
Webサイトと同じように、フレームワークを活用してWebアプリケーションを作ることもNode.jsでは可能です。初心者でも簡単なチャットアプリなどを作ることができます。
Webサーバー構築
Node.jsではWebサーバーも簡単に構築することができます。Node.jsはイベント駆動型言語であるため、プログラムを起動するだけイベント待機の状態になります。そのため少しコードを書いただけで、Webサーバーを構築することが可能になっています。
ゲームアプリ
Node.jsを利用してゲームアプリを作ることも可能です。JavaScriptのみで実装することもできますが、ゲーム通信に適した通信プロトコルを使用できるようになるライブラリを使用した方が品質の高いアプリを作ることができます。
スマートフォンアプリ
スマートフォンアプリもNode.jsで作ることができます。そして、Node.jsはリアルタイム通信が可能なため、チャット機能などをアプリに実装することができます。
ウェブAPI
Expressというフレームワークを利用すれば、Node.jsで簡単にウェブAPIを構築することも可能です。大量のアクセスをスピーディに処理する必要がある時は、Node.jsで構築するのがおすすめです。
Node.jsで作られたサービス3選
実際に、Node.jsを使用して作られたサービスにはどんなものがあるのでしょうか?3つの具体例を紹介しますので、活用イメージを膨らませてみてください。
①Paypal
電子メールアカウントとインターネットを利用する決済サービス「Paypal」のWebアプリケーション開発にはNode.jsが使用されています。
サーバー側の開発言語をJavaからNode.jsに切り替えることによって、フロント側との開発においての隔たりが減ったそうです。
②Uber
タクシーの配車サービスを提供している「Uber」も基幹システムにNode.jsを使用しています。Uberのサービスは世界中で使用されているため、膨大なネットワークシステムを運用する必要があり、Node.jsが採用されました。
③LinkedIn(モバイル版)
ビジネスに特化したソーシャルネットワーキングサービス「LinkedIn」のモバイル版にもNode.jsが使用されています。以前はRuby on Railsを使用していましたが、アクセスの速度を上げるためにNode.jsに移行されました。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >Node.jsでよく出てくるnpmとは?
続いて、Node.js への理解をより深めるために、Node.jsのパッケージ管理ツールである「npm」について解説します。
「npm」とは「Node Package Manager」の略で、Node.jsのパッケージを管理するツールです。Node.jsには開発に役立つパッケージが多数用意あり、それらをnpmで管理しています。
npmの代表的なパッケージ3選
ここからは、npmの代表的なパッケージ3つを紹介します。
Express
「Express」はWebアプリケーションフレームワークです。
Express を利用することで、Webアプリケーションを効率良く開発することができます。Node.jsのMVCフレームワークの中でも代表的なフレームワークといえます。(MVC:Model-View-Controller)
Request
「Request」を利用すれば、HTTPリクエスト機能が簡単に使えるようになります。HTTP/HTTPSのリクエスト自体はNode.jsの標準機能で実装できますが、Requestを利用した方が簡単に実装できます。
Meteor
「Meteor」はWebアプリケーション、モバイルアプリケーションなどをJavaScriptでつくれるフルスタックフレームワークです。Expressに負けないくらい人気の高いフレームワークです。
Node.jsのインストール方法は?
最後にNode.jsのインストール方法を紹介します。
はじめにNode.jsのサイトで自分のOS用のインストーラ、もしくはソースコードをダウンロードします。インストーラは実行することで実行ファイルがインストールされ、ソースコードの場合はコンパイルする必要があります。
また、コマンドを打ってNode.jsをインストールすることも可能です。その場合は「nvm」というツールを導入すると便利です。以下のコマンドを打つとnvmをインストールできます。
$ git clone git://github.com/creationix/nvm.git ~/.nvm
次に、以下のコマンドを打ってNode.jsをインストールします。インストール可能なバージョンは「nvm ls-remote」と打てば確認できます。
$ nvm install インストールするバージョン
これでNode.jsのインストールは完了です。インストールされているか確認したい時は、「nvm ls」と打てば確認できます。
Node.jsを使えば、複数の言語を学ばなくてもWebサイトやWebアプリケーションなどを作ることができるようになります。
チャットなど、リアルタイム通信ができるアプリを作りたい人には、Node.jsの学習を始めるのがおすすめです。
Node.js 入門 ー演習しながら学ぶ基本クラスの使い方ー
Node.jsの根幹にかかわる機能の使い方だけでなく動作原理まで学習することで基礎力をつけることを目指します!
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
Node.jsに触れたことのない人を対象にカリキュラムが組まれているので、とてもわかりやすい。
他の言語もこういう形で学習しておけばよかったと思いました。
評価:★★★★★
理論を体系的に学べたとともに、毎回の演習が親身で大変勉強になりました。
最新情報・キャンペーン情報発信中