使ったことのない技術について調べてみたシリーズ、今回は『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をインストールする必要はない。