1. 依存が 1 つのとき
  2. 依存が 2 つのとき
  3. 依存が無いとき
コース一覧
Node.js入門
package.json

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分

package.json

プロジェクトの身分証明書

package.json は、そのプロジェクトが何者で、何を借りているのかを書いたファイルです。次のコマンドで作られます。

プレーンテキスト

npm init -y

中身はただの JSON です。特別な文法はありません。

JSON

{ "name": "fleama-api", "version": "1.0.0", "main": "app.js", "dependencies": { "express": "^4.18.2" } }

npm install express を打つと、dependencies にこの行が自動で足されます。手で書き足す必要はありません。

node_modules を配らなくてよい理由

前のレッスンで、node_modules は他人に渡さないと書きました。渡すのは package.json のほうです。

受け取った人が npm install を打つと、dependencies を見て同じ部品が揃います。何万ファイルもあるフォルダを送る代わりに、数十行の設計図を送る、という考え方です。

バージョンの前に付いている記号

^4.18.2 の ^ には意味があります。

書き方許す範囲
4.18.2この版だけ
~4.18.24.18 系の中の新しいもの
^4.18.24 系の中の新しいもの

^ が既定なのは、多くの部品が「先頭の数字が変わらないうちは壊さない」という約束で公開されているからです。ですから ^ のままで、たいていは安全に新しいものを受け取れます。

手を動かす

演習では、プロジェクト名と依存の一覧から package.json の中身にあたるオブジェクトを組み立てる関数を書きます。fleama の土台がどう定義されるのかを、自分の手で作ってください。

要件

  1. name は受け取った名前、version は "1.0.0"、main は "app.js" にする
  2. dependencies はパッケージ名をキー、"^1.0.0" を値にしたオブジェクトにする
  3. 依存が空の配列のときも dependencies は空のオブジェクトとして必ず入れる

入出力例

buildPackageJson("fleama-api", ["express"]) → {"dependencies":{"express":"^1.0.0"},"main":"app.js","name":"fleama-api","version":"1.0.0"} buildPackageJson("fleama-api", ["express","dotenv"]) → {"dependencies":{"dotenv":"^1.0.0","express":"^1.0.0"},"main":"app.js","name":"fleama-api","version":"1.0.0"} buildPackageJson("fleama-api", []) → {"dependencies":{},"main":"app.js","name":"fleama-api","version":"1.0.0"}

ヒント

先に空のオブジェクトを 1 つ用意して、そこへ依存を 1 件ずつ足していきます

オブジェクトに動的なキーを足すときは `obj[name] = 値` の形で書けます

最後に `name` `version` `main` `dependencies` の 4 つを持つオブジェクトを返します

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

関連レッスン

  • npmスクリプト

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

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

    第1章の知識を統合し、fleamaの土台一式を初期化できるようになります。

  • 第1章クイズ

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

  • import/export

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

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

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

  • applicationJSON 本文を送るときの Content-Type
  • 設計何をどう作るかを決める前工程
  • オブジェクトキーと値のペアで構造を作るデータ
  • 関数処理に名前を付けて再利用できる単位
  • 配列サイズ固定の同型データの集まり
main.js
学習モード
エディタを読み込んでいます

メモ

package.json

⌘S で保存