1. 依存が 1 つの fleama
  2. 依存が 2 つでエントリーが違うとき
  3. 依存がまだ無いとき
コース一覧
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分

つくる:プロジェクト始動

新しいことは出てきません

この回では、新しい知識は 1 つも出てきません。第1章で書いたものを 1 つにまとめて、fleama の土台を完成させます。

ここまでに手に入れたもの

何をどのレッスンで
ブラウザと Node.js の違いNode.jsとは
ファイルを渡して動かすスクリプトを実行する
部品を借りて読み込むnpmとは
プロジェクトを定義するpackage.json
起動に名前を付けるnpmスクリプト

この 5 つが揃うと、プロジェクトを「他の人に渡せる形」で始められます。

土台とは何か

新しいプロジェクトを始めるとき、最初に決めるのはいつも同じことです。

  1. このプロジェクトの名前は何か
  2. 何を借りるのか
  3. どう起動するのか

この 3 つが package.json に書いてあれば、受け取った人は npm install と npm run dev の 2 つだけで動かせます。逆にどれか欠けていると、口頭で手順を伝えることになります。

起動できることが最初の完成

これから API を作っていきますが、その前に「動かせる状態」を作ることが先です。動かせないプロジェクトには、機能を足しても確かめる手段がありません。

第2章ではデータをファイルへ移し、第3章でいよいよサーバーが立ちます。

手を動かす

演習では、これまでの部品を全部使って package.json を丸ごと組み立てます。名前・依存・スクリプトの 3 つが揃った、そのまま配れる形にしてください。

要件

  1. name は受け取った名前、version は "1.0.0"、main は受け取ったエントリーファイル名にする
  2. scripts は start が node <エントリー>、dev が node --watch <エントリー> の 2 つを持つ
  3. dependencies はパッケージ名をキー、"^1.0.0" を値にしたオブジェクトにする(空でも必ず入れる)

入出力例

initProject("fleama-api", ["express"], "app.js") → {"dependencies":{"express":"^1.0.0"},"main":"app.js","name":"fleama-api","scripts":{"dev":"node --watch app.js","start":"node app.js"},"version":"1.0.0"} initProject("fleama-api", ["express","dotenv"], "server.js") → {"dependencies":{"dotenv":"^1.0.0","express":"^1.0.0"},"main":"server.js","name":"fleama-api","scripts":{"dev":"node --watch server.js","start":"node server.js"},"version":"1.0.0"} initProject("fleama-api", [], "app.js") → {"dependencies":{},"main":"app.js","name":"fleama-api","scripts":{"dev":"node --watch app.js","start":"node app.js"},"version":"1.0.0"}

ヒント

初期コードには `scripts` と `dependencies` がありません。その 2 つを足すのがこの回の仕事です

`dependencies` の作り方は package.json の回と同じです。空のオブジェクトに 1 件ずつ足します

`scripts` の中の値は、エントリーファイル名を文字列につないで作ります

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

関連レッスン

  • 第1章クイズ

    Node.jsとnpmの理解を4択で確認します。

  • import/export

    商品データを別ファイルに分離し、ファイルを分割できるようになります。

  • サーバーとリクエスト

    待ち受けから応答までの流れをたどり、サーバーの役割を説明できるようになります。

  • RESTの考え方

    fleamaのAPI一覧表を設計し、リソースとメソッドで設計できるようになります。

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

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

  • ブラウザユーザーから見たWebのクライアント
  • Node.jsJavaScript をサーバ側で動かすランタイム
  • package.json依存・スクリプトを宣言する単一ソース
  • applicationJSON 本文を送るときの Content-Type
  • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
  • APIアプリ間でデータをやり取りする窓口
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • オブジェクトキーと値のペアで構造を作るデータ
main.js
学習モード
エディタを読み込んでいます

メモ

つくる:プロジェクト始動

⌘S で保存