Node.jsとブラウザの違い
ブラウザとNode.jsはどちらもJavaScriptをプログラミング言語として使用します。ブラウザで動作するアプリを構築することは、Node.jsアプリケーションを構築することとは全く異なります。常にJavaScriptであるにもかかわらず、経験を根本的に変えるいくつかの重要な違いがあります。
JavaScriptを多用するフロントエンド開発者の観点から見ると、Node.jsアプリは大きな利点をもたらします。それは、フロントエンドとバックエンドのすべてを単一の言語でプログラミングできるという快適さです。
プログラミング言語を完全に、深く学習することがいかに難しいかを知っているので、クライアントとサーバーの両方でウェブ上のすべての作業を同じ言語を使用して行うことで、あなたは独自の有利な立場にいるのです。
TIP
変化するのはエコシステムです。
ブラウザでは、ほとんどの場合、DOMまたはCookieなどの他のWebプラットフォームAPIと対話しています。これらはもちろんNode.jsには存在しません。document
、window
、およびブラウザによって提供されるその他のすべてのオブジェクトはありません。
そしてブラウザでは、Node.jsがそのモジュールを介して提供する、ファイルシステムアクセス機能のような便利なAPIはすべてありません。
もう1つの大きな違いは、Node.jsでは環境を制御できることです。誰でもどこでもデプロイできるオープンソースアプリケーションを構築していない限り、アプリケーションを実行するNode.jsのバージョンを知っています。訪問者が使用するブラウザを選択するという贅沢がないブラウザ環境と比較して、これは非常に便利です。
これは、Node.jsバージョンがサポートするすべての最新のES2015+ JavaScriptを記述できることを意味します。JavaScriptは非常に速く進化しますが、ブラウザのアップグレードは少し遅いため、Webでは古いJavaScript/ECMAScriptリリースの使用を余儀なくされる場合があります。Babelを使用してコードをES5互換に変換してからブラウザに送信できますが、Node.jsではそれを行う必要はありません。
もう1つの違いは、Node.jsがCommonJSとESモジュールシステムの両方をサポートしていること(Node.js v12以降)です。一方、ブラウザでは、ESモジュール標準の実装が始まりつつあります。
実際には、これはNode.jsではrequire()
とimport
の両方を使用できますが、ブラウザではimport
に制限されることを意味します。