1. ブラウザを渡したとき
  2. Node.js を渡したとき
  3. 知らない名前のとき
  4. 空文字のとき
コース一覧
Node.js入門
Node.jsとは

Node.js入門

Node.jsの実行モデル、npm、Expressによるルーティング、REST API設計、データベース接続、トランザクションを使った購入処理、トークン認証まで、バックエンド開発の基礎を、毎レッスン実際にコードを書き、フリマアプリのAPIを自分の手で作りながら学びます。

1
Node.jsとは
01. Node.jsとは15分
02. スクリプトを実行する15分
03. npmとは15分
04. package.json15分
05. npmスクリプト15分
06. つくる:プロジェクト始動20分
07. 第1章クイズ10分
2
モジュールと非同期の復習
01. import/export15分
02. ファイルを読み書きする15分
03. async/await復習15分
04. JSONの取り回し15分
05. つくる:データ層20分
06. 第2章クイズ10分
3
はじめてのサーバー
01. サーバーとリクエスト15分
02. Expressを導入する15分
03. ルーティング15分
04. JSONを返す15分
05. 開発の回し方15分
06. つくる:サーバー始動20分
07. 第3章クイズ10分
4
REST APIのきほん
01. RESTの考え方15分
02. 一覧を返す15分
03. 1件を返す15分
04. 登録を受ける15分
05. 更新と削除15分
06. ステータスコード15分
07. つくる:商品CRUD完成20分
08. 第4章クイズ10分
5
リクエスト処理と検証
01. クエリパラメータ15分
02. 並び替えとページング15分
03. 入力検証15分
04. ミドルウェア15分
05. エラーハンドリング15分
06. つくる:検索API完成20分
07. 第5章クイズ10分
6
データベース接続
01. DBにつなぐ15分
02. 一覧・詳細をDB化15分
03. 出品をDB化15分
04. SQLインジェクション20分
05. 更新・削除をDB化15分
06. 購入トランザクション20分
07. つくる:DB版fleama20分
08. 第6章クイズ10分
7
認証のきほん
01. 認証と認可15分
02. パスワードハッシュ15分
03. ログインとトークン15分
04. 保護ルート15分
05. 本人のものだけ15分
06. つくる:認証完備20分
07. 第7章クイズ10分
8
総合制作
01. fleama API完成20分
02. Reactと接続する20分
03. サーバーで常駐させる20分
04. 自由拡張20分
05. 完成と次のステップ15分

Node.jsとは

JavaScript はブラウザの外でも動く

ここまで書いてきた JavaScript は、すべてブラウザの中で動いていました。ボタンを押したら色が変わる、入力欄の文字を読む、fetch でデータを取ってくる。どれも画面があることが前提です。

Node.js は、その JavaScript をブラウザなしで動かすための実行環境です。実行環境のことをランタイムと呼びます。同じ文法で書いたコードが、画面を持たないコンピュータの上でそのまま動きます。

何ができるようになるのか

ブラウザの JavaScript には、意図的にできないことがあります。あなたが開いたページが勝手にパソコンのファイルを読めたら困るからです。

Node.js にはその制限がありません。代わりに、ブラウザにあったものが無くなります。

JavaScript

console.log(typeof window); // browser: object node: undefined console.log(typeof document); // browser: object node: undefined console.log(typeof process); // browser: undefined node: object

window と document は画面があるから存在するものです。Node.js には画面が無いので、どちらもありません。逆に process は、動いているプログラム自身の情報を持つ Node.js 側の入り口です。

つまり両者はこう分かれます

ブラウザNode.js
役割画面を描くサーバーで待ち受ける
使えるwindow, documentprocess, ファイル操作
誰が動かす訪問者のパソコンあなたが用意したサーバー

文法は同じです。違うのは周りに何が置いてあるかだけです。

このコースで作るもの

このコースでは、フリマアプリ fleama の API をひとつ作り上げます。React でフリマの画面を作ったとき、商品一覧はモックの偽データを返していました。あの裏側を、これから本物にしていきます。

最初は 1 行のスクリプトから始めて、最後には出品・検索・購入・ログインまでできる API になります。

手を動かす

演習では、実行環境の名前を受け取ってその説明を返す関数を書きます。ブラウザと Node.js の違いを、自分の言葉で分けられるか確かめてください。

要件

  1. "browser" を渡したら 画面を描くための実行環境です を返す
  2. "node" を渡したら サーバーで動かすための実行環境です を返す
  3. そのどちらでもないときは 分かりません を返す

入出力例

describeRuntime("browser") → "画面を描くための実行環境です" describeRuntime("node") → "サーバーで動かすための実行環境です" describeRuntime("deno") → "分かりません" describeRuntime("") → "分かりません"

ヒント

`if (env === "browser")` の形で 1 つずつ見分けます

当てはまったらその場で `return` すると、後ろの行は動きません

どれにも当てはまらなかったときの返り値は、最後の 1 行がそのまま使えます

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/10

関連レッスン

  • スクリプトを実行する

    商品データを整形して表示するスクリプトを書き、.jsファイルをnodeで動かせるようになります。

  • npmとは

    パッケージを導入して使い、npmが何を解決するのかを説明できるようになります。

  • package.json

    fleamaプロジェクトを初期化し、package.jsonでプロジェクトを定義できるようになります。

  • npmスクリプト

    npm run devを定義し、起動コマンドを整備できるようになります。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • JavaScriptWeb で動的な振る舞いを担う言語
  • ブラウザユーザーから見たWebのクライアント
  • Node.jsJavaScript をサーバ側で動かすランタイム
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
  • APIアプリ間でデータをやり取りする窓口
  • 関数処理に名前を付けて再利用できる単位
main.js
学習モード
エディタを読み込んでいます

メモ

Node.jsとは

⌘S で保存