第5回 - Node.js
Node.jsとは?
Section titled “Node.jsとは?”- Node.js ↗はJavaScriptには無い機能を拡張したJavaScript実行環境の一つ
- ブラウザで使用するJavaScriptではセキュリティ上の理由でローカルのファイルシステムへのアクセスやネットワーク操作が厳しく制限されている。
- 例えば、ファイルの内容を変更したり、データベースへアクセスする操作など。
- そういったブラウザでは実行できない操作を、実行するための環境として作られたのがNode.js
- 主にサーバ側で必要な操作をするために使用される。
- Node.jsでは元々高速なJavaScriptの実行能力を活かしつつ、サーバー側に必要な機能を追加することで、効率的なサーバー側の実行環境を実現した。
Node.jsをインストールすると使用できるようになる3つのコマンド
Section titled “Node.jsをインストールすると使用できるようになる3つのコマンド”nodeコマンド
Section titled “nodeコマンド”Node.jsでJavaScriptを実行するコマンド
# Node.jsのバージョン確認node --version
# JavaScriptファイルを実行node index.js
# 実行中のファイルの変更を監視node --watch server.jsnpmコマンド(Node Package Manager)
Section titled “npmコマンド(Node Package Manager)”npm ↗で公開されているプラグインやモジュールをインストールして使用することができるコマンド。
サーバー側で使用されるものだけではなく、ブラウザ側で使用されるプラグインなども多数存在し、バージョン管理やアップデートなども可能。
# 一般的なインストールnpm install パッケージ名
# package.jsonの新規作成npm init
# 開発用パッケージのインストールnpm install --save-dev パッケージ名
# グローバルインストールnpm install -g パッケージ名
# パッケージのアンインストールnpm uninstall パッケージ名
# インストール済みパッケージの一覧表示npm list
# パッケージの更新npm update
# スクリプトの実行npm run スクリプト名
# package.jsonを元にインストールnpm installnpxコマンド
Section titled “npxコマンド”npmパッケージを一時的に実行するコマンド
主な用途として、
- プロジェクトにインストールせずにパッケージを一時実行
- ローカルにインストールされた公開されていないパッケージの実行
- 異なるバージョンのパッケージを試す などで使用される。
# cowsayコマンドをインストールせずに、試すnpx cowsay "こんにちは!!"- JSONは
.jsonというファイル形式の、軽量なテキストファイル - JavaScriptのオブジェクトをベースにしているが、JavaScriptに限らず多くのプログラミング言語でサポートされており、データを交換するために使用されることが多い。
{ "users": [ { "id": 1, "name": "田中太郎", "age": 30 }, { "id": 2, "name": "山田花子", "age": 25 }, { "id": 3, "name": "佐藤次郎", "age": 35 } ]}[ { productId: "PROD-001", name: "ノートパソコン", price: 89000, inStock: true, }, { productId: "PROD-002", name: "ワイヤレスマウス", price: 2500, inStock: true, }, { productId: "PROD-003", name: "キーボード", price: 8900, inStock: false, },];package.json
Section titled “package.json”-
npm initコマンドを使用すると、package.jsonというJSONファイルが自動生成される。 -
package.jsonファイルには、プロジェクト名、バージョン、説明文、作者情報などのプロジェクトの基本的な情報を記載する。
-
「scripts」セクションには、プロジェクトで使用する様々なコマンドを定義できる。
- 例えば、アプリケーションの起動や、ビルド、などの任意のコマンドを設定できる。
{ "name": "プロジェクト名", "version": "バージョン番号", "description": "プロジェクトの説明", "scripts": { "dev": "開発環境立ち上げコマンド", "test": "テストコマンド" }, "license": "ライセンス情報"}try..catch(例外処理)
Section titled “try..catch(例外処理)”try…catch ↗とは、プログラム実行中に予期せぬエラー(ファイルがない、通信が切れた等)が起きたとき、プログラムを強制終了させずに、エラー出力やその後のプログラムの実行などに対処するための構文で、プログラムの安全装置として機能する。
サーバー側の処理を作る際に、1つのエラーでサーバー全体が停止してしまうと困るので、「エラーは必ず起きるもの」という前提で、一つのエラーでサーバーを停止させないためにtry...catchを使用する。
また、プログラミング用語で、こういった処理のことを「例外処理」と呼ぶ。
try…catchの使い方
Section titled “try…catchの使い方”通常の処理をtryブロックの中に書き、失敗したときの対応をcatchブロックの中に書く。
try { // ここに通常の処理を書く console.log("処理スタート");
doSomethingFunction(); // ← もしこの関数が存在していなくてエラーが起きると...
console.log("成功!"); // ← この行はスキップされる} catch (error) { // エラーが起きたら、即座にここにジャンプしてくる console.log("失敗したけど、大丈夫。処理を続けます。"); console.error("エラー内容:", error.message);}
// try...catch を抜けた後も、プログラムは動き続けるconsole.log("次の処理へ...");なぜサーバー側では例外処理が重要なのか
Section titled “なぜサーバー側では例外処理が重要なのか”Webサーバーは、24時間営業のコンビニのようなもので、多くのお客さん(ユーザー)が同時に利用している。
try…catch がない場合
Section titled “try…catch がない場合”- お客さんが、レジで牛乳を床に落としてしまった(エラー発生)。
- 店員(プログラム)はパニックになり、お店のシャッターを即座に下ろして閉店してしまう(サーバーダウン)。
- 店内にいた他のお客さんも全員強制的に追い出される。
- 店長(管理者)が来て再起動するまで、誰もお店を使えない。
try…catch がある場合
Section titled “try…catch がある場合”- お客さんが、レジで牛乳を床に落としてしまった(エラー発生)。
- 店員は「あ、こぼれちゃいましたね。拭いておきます」と、
catch処理(エラー発生時の処理)を実行。 - お店は営業を続けます。
- 他のお客さんは何事もなかったかのように買い物を続けられる。