【Nuxt.js】で開発しないと、そのサイト時代遅れだぞ!(Node.js攻略編)
でもその前に、その裏に潜んでいるNode.jsについて簡単に攻略していきます。
今更ですが、Node.jsって何者なのか、簡単に説明すると。。。
公式の説明
Node.jsの公式サイト(https://nodejs.org/ja/about/)では、以下のように説明されています。
Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。 以下の「Hello World」の例では、たくさんの接続を同時に処理することができます。 各接続ごとにコールバックは発火され、何もすることがない場合、Node.js はスリープします。
はい、読んでみてもよくわかりませんね。
よくある説明
Node.jsについて調べていると、以下のようなワードがよく出てきます。
- サーバー上で動作する
- TypeScriptを使ってプログラミングができる
- クライアントで動作するJavaScriptを使ってプログラミングができる
- C10K問題が発生せず、安定して動作する
これだけを見ると、サーバー上で動作するWeb用のAPサーバーなのか、それともLinuxのようなサーバーなのか、いまいち理解ができません。
結局、何者なのか?
ではNode.jsって、結局は何者なのか?
私が端的に説明するとしたら、以下のような説明になります。
「サーバーに限らず、ノード、端的に言えばPCやネットワーク機器などでJavaScript(TypeScript)を実行することができる実行環境である。」
試してみましょう
何を試す?
Node.jsを使用して、ノード(お使いのPC)上で、実際にJavaScript(TypeScript)を使用し、「Hello World」を出力させてみます。
Node.jsをインストール
Node.jsのインストール手順の詳細については、いろいろなところで解説があるため、ここでは割愛させていただきます。
Macの場合であれば次の方法がありますが、おすすめは「nodebrew」を使用する方法です。
その理由としては、複数のバージョンを同時にインストールでき、必要に応じて簡単にバージョンを切り替えることができるためです。
- 公式からパッケージをダウンロードしてインストール
- homebrewを使ってインストール
- nodebrewを使ってインストール
インストールの確認
次のコマンドをMacではターミナル、Windowsではコマンドプロンプトで実行し、バージョン情報が出力されれば正常にインストールができています。
$ node -v
図 1 Node.jsバージョン出力
Hello World!
任意のフォルダ内に「hello.js」というファイルを作成し、以下の1行のコードを記述しましょう。
console.log(“Hello NodeJS World!!”);
ターミナルやコマンドプロンプトで、ファイルが保存されている位置まで移動し、次のコマンドを実行すると、コンソール上に「Hello NodeJS World!!」の文字が出力されます。
$ node hello.js
Hello NodeJS World!!
ファイルの作成から実行までの操作を、実際に行った場面を録画してみましたので、ご覧ください。
Node.jsとは何者なのか?
結論
以上のことから、Node.jsとは、サーバーに限らずPC上で、JavaScript(TypeScript)を利用してシステム開発するための実行環境であるといえます。
Node.jsは、Webサーバー上に配置してWeb APIやWebページの実装によく利用されますが、それは数ある使い方のうちのひとつでしかなく、Node.jsという環境の利用範囲はもっともっと広いと考えます。
PC上でJavaScriptが動いて何が嬉しいの?
パッと思いつくのは以下のものでしょう。他にも色々なメリットがあるかもしれません。
- JavaScript(TypeScript)をひとつ覚えれば、Webのサーバーサイド、クライアントサイド両方の実装ができる
- Web APIを経由せずとも、端末上のローカルリソース(ファイルやデータベース)にアクセスできる
- シークレットトークンやパスワードなどの秘匿情報を、外部に公開することなく利用することができる
- 処理をサーバー内部で実行することができるので、ソースコードは公開する必要がなく、社内機密的なアルゴリズムを秘匿することができる
- Webシステムの場合、一部がサーバーサイドで動作するため、全てをクライアントサイドで処理する方式に比べて、クライアントPCの処理能力の影響を受けにくい
- TypeScriptが使え、型制約のもと、保守性・可読性の高いシステム構築ができる
ここでそれぞれのメリットについて説明してしまうと長くなってしまいますので、割愛します。
そして次回、
いよいよNuxt.jsの登場です。
Node.jsとの関係性、
あのデジタル庁ではどのように使われているのか、
なぜ使うのか?
使うと何が嬉しいのか?
使わないとなんで時代遅れなのか?
今、Webサイトを作ってる諸君、「もう、時代変わってるよ!」って人は、次回も是非是非、読んでくださいませ。
→ 【Nuxt.js】を使わないと、そのサイト時代遅れだぞ!(Nuxt.js概念編)へつづく
最新のWebシステム開発は、CNS R&D (cnsrd.jp)へご相談ください。
(開発者M)