🌟

node.jsとは一体?

2023/01/13に公開約1,800字

この記事では,node.jsはいったい何者なのかを,色々と寄り道しながら説明していきます.

Node.js

JavaScriptとは違うの?

Node.jsを説明していると,必ず聞く言葉ですね.
JavaScriptとNode.jsは,違います.

JavaScriptは,プログラミング言語の一つ.
Node.jsは,実行環境の一つ.
というように,そもそも根本が違うんですね.

そもそもJavaScriptというのは,HTMLと併用される言語で,ウェブブラウザ上(ChromeやEdge,Firefox)で動き,コンパイルが必要ありません.

そして,そのJavaScriptをウェブブラウザ上ではなく,サーバー上で動くようするのがNode.jsという感じです.

何言ってるかわかんないって方いらっしゃいます?
安心してください.昔の私もそうでした.

ウェブブラウザ上とサーバー上の違いがわからない.

そもそもここがわからないと,JavaScriptとNode.jsの違いがわかりません.

ウェブブラウザ上で動くJavaScript

今皆さんはこの記事を見ていますよね?
この記事は,HTMLとCSSとJavaScript(と,その他画像や動画などのメディアやファイル)で作られていて,サーバーから皆さんのブラウザに,それらすべてが送られているのです.

この,サーバーから送られるjavaScriptが,ウェブブラウザ上で動くJavaScriptです.(Node.jsではないほう)
そのため,この記事を開いたままインターネット通信を切っても,こちら側にすべてのファイルが送られているので,続けて閲覧することができるのです.

ちなみに,この記事も(というか全てのページで)どのようなHTMLが送られているか,見ることができます.
(F12を押して開発者ツールを開き,NetWorkを選択し,リロードしたときに一番最初に出た名前をファイル検索)

サーバー上で動くJavaScript(Node.js)

では,サーバー側はどのようにHTML等を送っているのでしょうか.
皆さんがこの記事を見るとき,このような事が行われているのです.

  1. 皆さんがURLをウェブブラウザに入力する.
  2. ウェブブラウザが,HTTPリクエスト(後述)を送る.
  3. サーバーがHTTPリクエストを受け取る.
  4. サーバーがリクエストをもとに,HTTPレスポンス(後述)を送る.
  5. ウェブブラウザがHTTPレスポンスを受け取る
  6. ウェブブラウザがHTTPレスポンスで送られたものを表示する.

HTTPリクエストとは

URLにアクセスした時点で,サーバーに「このURLのHTML等を送って!」という要求を送ることです.
サーバーに対して,「このURLのページを見させて!」と言っていると思っていただいて大丈夫です.

HTTPレスポンスとは

HTTPリクエストに対しての答えです.
HTTPリクエストで,「https://zenn.dev/tukurugi_v/ffb26169e2ca46 のページが見たい!」と言ったとしましょう.
するとサーバーは,「OK!じゃあこれがそのURLのHTMLとかだよ!」と,答えを返してくれます.(OKではないこともあります)

この返答のことを,HTTPレスポンスといいます.

結局Node.jsとは?

上記のようなHTTPリクエストを受け取り,HTTPレスポンスを返すためのJavaScript実行環境.

なぜNode.jsが選ばれるのか.

個人的に,Node.jsを選ぶメリットは,

  1. JavaScriptを用いているため,学習コストを抑えられる.
  2. JavaScriptをサーバーで使える.
    の2つだと思っています.

JavaScriptは,世界で一番人気な言語[1]と言われています(2022/10/20).
また,どちらにせよウェブ開発を続けていく途中でJavaScriptを使うことが来ると思います.
そこで,Node.jsを選択することで学習コストを抑えられます.

参考文献

脚注
  1. https://redmonk.com/sogrady/2022/10/20/language-rankings-6-22/ ↩︎

Discussion

ログインするとコメントできます