Node.jsをインストールする

はじめまして, Sefoo(せふ)です。
Node.jsをインストールして確認するまでをまとめた。参考にして頂ければ幸い。

#背景
デスクトップアプリを作りたくて[Electron](https://www.electronjs.org/)に興味を持った。ただ, JavaScriptやNode.jsは少し触ったことがある程度。これを機にちゃんと勉強しようと思う。
とりあえずNode.jsで簡単なものを作ってみることにする。さて, まずはNode.jsのインストールから始めよう。ちなみに自分は**Windows 10 OS環境**で開発する。

#Node.jsをダウンロードする。
Node.jsは後で記述するが, JavaScriptの実行環境のことだ。
[Node.jsのHP](https://nodejs.org/ja/)からダウンロードする。画面左の推奨版を押す。
インストール完了の際, バージョン番号で確認するので覚えておくとよい。自分の場合は「12.14.1」。
![縮小 - Nodejs install.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/40d41c9e-7995-2d82-5d16-22b67891164e.png)

#Node.jsをインストールする。
ダウンロードされたインストーラを起動する。基本的にインストーラに従って次々ボタンを押すだけでよい。
![Nodejs install 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/0095bacc-3fca-c573-6f88-0cb721068383.png)
![Nodejs install 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/3417d7a1-1414-6d90-4d83-b1c75a722892.png)
「I accept the terms in the License Agreement」にチェックを入れるのを忘れないように。「ライセンスに同意する」の意。
![Nodejs install 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/6d13e268-387f-7526-e0cc-a84048aced81.png)
インストール先を変えたい方はここで変更する。自分はこのまま。
![Nodejs install 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/79ebea0a-9e65-c861-efca-099ca29e45aa.png)
デフォルトのままで次へ。インストールするのはNode.js本体とNode Package Manager(npm)。あと, パスも自動で通してくれるらしい。ドキュメントへのショートカットもインストールすると読めるが見つからなかった。
![Nodejs install 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/63851955-87e5-0f07-2528-730aaa3b718a.png)
チェックを外して次へ。自分の環境は決してディスク容量が大きいわけではないので, 極力余計なモノは入れたくない。必要になれば自分で入れる。「いくつかのライブラリに必要なモジュールをインストールしますか？」の意。
![Nodejs install 6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/f794798a-fc73-2b65-e09c-7748267dee72.png)
![Nodejs install 7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/2ea42c0c-ea7c-e150-0799-51059a852254.png)
![Nodejs install 8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/0078f02f-e72f-ce4f-9b0c-b781a8d8febb.png)
おわり。

#ちゃんと動くのか確認する
コマンドプロンプトを起動して確認する。
![コマンドプロンプトの場所.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/574235/818ceeae-d02b-5344-0cbb-f9de2dfd98a9.png)

以下のコマンドをタイプする。

```shell:node.jsのバージョンを確認

node --version
```

ダウンロードしたNode.jsのバージョンと同じ数字が返ってくれば問題なくインストールされている。

```shell:node.jsのバージョン結果

v12.14.1
```

Node.jsと一緒にnpmもインストールされているのでそちらも確認する。

```shell:npmのバージョンを確認

npm --version
```

```shell:npmのバージョン結果

6.13.4
```

#そもそもNode.jsとは何か
Node.jsはJavaScriptの実行環境のこと。詳細は[Node.jsのHP](https://nodejs.org/ja/about/)から確認してほしい。
JavaScriptは元々ブラウザ上で動くプログラム言語だが, Node.jsは自身のPCやサーバサイドでJavaScriptを動かすことができる。

Node.jsは大規模で高速なネットワークを構築するコンセプトの元で開発された。
>Node's goal is to make non-blocking network programming accessible to users who are not well-versed in server development
Ryan Dahl

Node.jsはC10K問題を解決する。Apache HTTP Serverはどれだけ高性能なサーバを用意しても1万接続を超えるとパフォーマンスが上がらない。プロセスやスレッドが接続数に応じて増えることが原因と言われている。Node.jsはイベントループとノンブロッキングI/Oによりこの問題を解決した。
>[C10K問題](https://ja.wikipedia.org/wiki/C10K%E5%95%8F%E9%A1%8C)（英語: C10K problem）とは、Apache HTTP ServerなどのWebサーバソフトウェアとクライアントの通信において、クライアントが約1万台に達すると、Webサーバーのハードウェア性能に余裕があるにも関わらず、レスポンス性能が大きく下がる問題である。
C10K問題 - Wikipedia 参照

Node.jsなら小規模のデータや計算ならば高速に処理できて, メモリの消費量も抑えらえる。

#最後に
最後まで読んで頂き, 感謝。
Node.jsとnpmのインストールについてまとめた。特に難しい点もなく, 時間もかからなかった。
Node.jsのバージョンを上げる時は同じ手順で[Node.jsのHP](https://nodejs.org/ja/)からインストールすればよい。また, コマンドラインからバージョンアップできるツールもあるようだ。MacOSなら[n](https://www.npmjs.com/package/n)が有名か。導入したら記事を上げるかもしれないので乞うご期待。

#参考資料
- [Node.js / npmをインストールする（for Windows）](https://qiita.com/taiponrock/items/9001ae194571feb63a5e)
- [Node.js を5分で大雑把に理解する](https://qiita.com/hshimo/items/1ecb7ed1b567aacbe559)
- [初心者向け！3分で理解するNode.jsとは何か?](https://eng-entrance.com/what-is-nodejs)
- [Node js 入門](https://www.slideshare.net/SatoshiTakami/intoroduction-nodejs)
- [The Up-And-Coming Node.js Server-Side JavaScript Runtime Environment](https://www.iij.ad.jp/en/dev/tech/nodejs/)