Tatehitoの技術メモ

ソフトウェアエンジニアです。いろいろ書きます。

JavaScript実行環境『Node.js』について調べてみた

使ったことのない技術について調べてみたシリーズ、今回は『Node.js』について。

Node.jsとは?

一般的にJavaScriptというのはWebブラウザ上(フロントエンド)で動作する言語である。

フロントの実装をする上ではなくてはならない存在なわけだけど、「JavaScriptをバックエンドでも使えたら、言語が統一できて良さげじゃない!?」と考えた人がいて、生まれたのがNode.js。

勘違いしやすいが(というかずっと勘違いしていたが)、Node.jsはバックエンドでJavaScriptを動かすための「実行環境」であって、言語ではない。

Node.jsの特徴は?

  • 非同期 (I/Oの処理結果を待たず処理を進める)
  • JavaScript エンジンがGoogleの「V8」を採用していて、速い
  • npm(Node Package Manager)と呼ばれるパッケージ管理システムを同梱
  • ライブラリが豊富

以上のような特徴があるようだ。細かい特徴はもっと調べてみないと理解できないが、「JavaScriptでバックエンドが実装できて、豊富なライブラリを簡単に管理・導入できる環境のこと」だけでとりあえずNode.jsの説明になってる気がする。

Node.jsのフレームワークはあるの?

山ほどある。Googleの検索結果としては「Express」が最もよくヒットした。他には「Sails.js」とか「Nest.js」とか。まだまだある。

Vue.jsとの関係は?

Vue.jsについて勉強していたとき、Node.jsが登場した記憶が曖昧だけどあったので、両者の関係をちょっと調べてみた。

Vue.jsをインストールする手段としてnpmを利用するのが便利なため、Vue.jsを導入する際には、npmが同梱されてるNode.jsを合わせてインストールすることがメジャーになっているっぽい。たぶん、この手順を見たときに「Node.js」という単語を見かけたのだろう。

ちなみに、Vue.jsのコマンドラインツール『Vue-CLI』を使用するにはNode.jsのインストールが必須となっている。ということもあって、「Vue.jsのインストール = Node.jsもインストール」がメジャーなんだと思う。たぶん・・・。

もうひとつちなみに、RailsアプリケーションにVue.jsを導入する場合は、gemの「webpacker」経由でインストールできるのでNode.jsをインストールする必要はない。

参考文献