Help us understand the problem. What is going on with this article?

Node.js + ExpressでREST API開発を体験しよう for Windows[準備編]

More than 3 years have passed since last update.

はじめに

これからREST APIを作ってみようと思っているけど、どこから手を付けようか考えている人向けに、Node.js + Expressを使って、簡単なAPIを作る手順をまとめました。

APIを作るのであれば、phpでもJavaでも何でも良いですが、メモ帳で作れるので仕事の開発環境に影響せず、10分程度で動くものがラクに作れる事から、試しにREST APIを作ってみる分にはNode.js + Expressを推奨します。

ちなみに、今回はWindows7を使って紹介していますが、Macでも基本的に同じです。

すでに準備ができている人は、作成編でAPIを作成してみましょう。
Node.js + ExpressでREST API開発を体験しよう[作成編]

使う道具

Node.js(Ver.6.9.1)

https://nodejs.org/ja/
サーバー側でJavascriptを動かす環境。
クライアント側でJavascriptを動かす環境であるブラウザとは、色々と違います。

npm(Ver.3.10.8)

https://www.npmjs.com/
node package manager。
Node.jsに追加できる様々なパッケージを管理するアプリケーション。
Node.jsと一緒にインストールされます。

Express(Ver.4.14.0)

http://expressjs.com/ja/
Node.js上で動作する、MVCフレームワーク。
WebアプリやAPIを作るなら、Expressを使った方が圧倒的に早いです。

express-generator

http://expressjs.com/ja/starter/generator.html
Expressを利用したアプリケーションの雛形を生成してくれる、Node.js向けパッケージ。
コマンドを叩くだけで、動くアプリが一瞬で生成されます。

Node.jsの準備

Node.jsのインストール

下記サイトでインストーラをダウンロードします。
https://nodejs.org/ja/download/

image07.png

インストーラを起動して、画面に従って [Next] ボタンをクリックして進めます。
image02.png

チェックボックスにチェックを入れて、 [Next] ボタンをクリックします。
image03.png

任意のフォルダを選択して [Next] ボタンをクリックします。
image14.png

「node.js」本体と、「npm」が選択されています。
特に変更せずに、 [Next] ボタンをクリックします。

image05.png

[Install] ボタンをクリックします。
image04.png

インストールが終わるまで待ちます。
image06.png

[Finish] ボタンをクリックします。
これでインストールは完了です。
image17.png

インストール完了の確認

Node.jsが正常にインストールされたか確認します。
コマンドプロンプトを起動して、node -vと入力します。
バージョンが表示されたら正常にインストールされています。
同様に、npm -vと入力して、npmが正常にインストールされているか確認しましょう。
image12.png

Expressの準備

Expressのインストール

まずはExpressをインストールします。

コマンドプロンプトで、npm install -g expressと入力します。
Expressのグローバルインストールが開始されます。

-g オプションを付けないと、現在のフォルダ配下のみにインストールされます。
システム全体にインストールするために、必ず付けて下さい。

image00.png

こちらも、正常にインストールされたか、express --versionと入力して確認しましょう。
001.png

express-generatorのインストール

次に、express-generatorをインストールします。

コマンドプロンプトで、npm install -g express-generatorと入力します。
express-generatorがインストールされます。
image18.png

アプリの雛形の生成

express-generatorがインストールできたら、アプリの雛形を生成してみましょう。
コマンドプロンプトで、express myappと入力します。
image09.png

myappというプロジェクトフォルダと、各種ファイルが生成されます。
image10.png

image08.png

この状態では、まだmyappアプリは動きません。
アプリを動かすために必要なパッケージをインストールしましょう。

必要なパッケージは、myappフォルダにある、package.jsonの中に最初から記載されています。
コマンドプロンプトでmyappフォルダに移動して、npm installと入力します。
npmがpackage.jsonを見て、必要なパッケージをインストールしてくれます。
image01.png

node_modulesフォルダが作られた事を確認しましょう。
image16.png

これで、myappアプリを動かす準備ができました。

アプリの起動確認

コマンドプロンプトで、myappフォルダの中でnpm startと入力します。
Node.jsが起動して、myappが動きます。
image15.png

ブラウザで http://localhost:3000/ にアクセスします。
「Welcome to Express」という画面が表示される事を確認しましょう。
image13.png

続いて、 http://localhost:3000/users にアクセスします。
「respond with a resource」という画面が表示される事を確認しましょう。
image11.png

ブラウザで実行するとピンと来ないかもしれませんが、これはREST APIです。
usersというエンドポイントに、GETメソッドのリクエストを送ると、"respond with a resource"という文字列をレスポンスとして返すAPIです。

これで、APIを作る準備は完了です。

Node.jsの停止

Node.jsを停止する時は、コマンドプロンプトでCtrl + C で停止できます。
image15.png

npmの補足説明

npmはパッケージを管理するために、さまざまな機能が用意されています。
今回の作業で使用した、npmのコマンドについて簡単に説明します。

npm -v

npmのバージョンを確認します。
npm -versionでもOKです。

npm install (パッケージ名)

npmが管理しているパッケージをインストールします。
-g オプションを付けると、システム全体にインストールされます。
付けない場合は、選択しているプロジェクトフォルダのみにインストールされます。
npm -iでもOKです。

npm install

選択しているプロジェクトフォルダのpackage.jsonに書かれている全てのパッケージを、プロジェクトにインストールします。

package.json
{
  "name": "myapp",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {            //  dependencies 以下のパッケージがインストールされます。
    "body-parser": "~1.15.2",  //   横の数字はバージョンです。
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.14.0",
    "jade": "~1.11.0",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0"
  }
}

npm start

package.jsonのscriptsにはコマンドを登録する事ができます。
登録したコマンドはnpm run (登録名)で実行する事ができます。
ただし、"start"のような一部の予約語は、runを省略する事ができます。

今回のnpm startは、node ./bin/wwwというコマンドが実行されます。
これはNode.jsの起動コマンドで、wwwファイルには、メインファイルであるapp.jsをhttp://localhost:3000/ で起動する旨が書かれています。

package.json
{
  "name": "myapp",
  "version": "0.0.0",
  "private": true,
  "scripts": {            //  start という名称でコマンドが登録されています。
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.2",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.14.0",
    "jade": "~1.11.0",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0"
  }
}

まとめ

以上で準備は完了です。
次のページで、実際にAPIを作成してみしましょう。

Node.js + ExpressでREST API開発を体験しよう[作成編]

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away