tanaka101

サーバーを立てる

Expressで最初のサーバーを立ち上げ、Hello World を返します。

このレッスンで作るもの

Expressを使って最初のAPIサーバーを立ち上げます。ブラウザからアクセスすると Hello World と表示される状態を作ります。

Step 1: Expressサーバーを作成する

src/index.ts を以下の内容に書き換えてください。

index.ts
import express from 'express';
 
const app = express();
const PORT = 3000;
 
app.get('/', (req, res) => {
  res.send('Hello World');
});
 
app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

コードの解説

1行ずつ見ていきましょう。

Express を読み込みます。

import express from 'express';

Expressアプリケーションを作成します。この app に対してルート()を設定していきます。

const app = express();

express()とは

このexpressを利用するために必要な宣言。

express公式 ではCreates an Express application. The express() function is a top-level function exported by the express module.と記載されています。

サーバーが待ち受けるポート番号を指定します。3000 は開発でよく使われる番号です。

const PORT = 3000;

GET / にアクセスされたときの処理を定義します。

app.get('/', (req, res) => {
  res.send('Hello World');
});
引数説明
req(request)クライアントからの情報
res(response)クライアントに返す

res.send() で文字列をとして返します。

サーバーが接続を受けられる状態にします。

app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

指定したポート3000でサーバーを起動します。
起動が完了するとが実行され、コンソールにURLが表示されます。

※このはデバッグ用です。なくても動きます

Step 2: サーバーを起動する

で開発サーバーを起動します。

npm run dev

以下のように表示されれば成功です。

Server is running on http://localhost:3000

Step 3: ブラウザで確認する

ブラウザを開いて、以下のURLにアクセスしてください。

http://localhost:3000

画面に「Hello World」と表示されれば成功です。

localhost とは?

localhost は「自分自身のPC」を指す特別なアドレスです。外部からはアクセスできません。

:3000 はポート番号を意味します。1台のPCで複数のアプリが通信を区別できるように、それぞれ異なるポート番号を使います。例えば、別のアプリがすでにポート 3000 を使っている場合は、http://localhost:3001 のように別の番号を指定して起動します。

Step 4: JSONを返す

APIは通常、文字列ではなく 形式でデータを返します。res.send()res.json() に変更してみましょう。

src/index.
import express from 'express';
 
const app = express();
const PORT = 3000;
 
app.get('/', (req, res) => {
  res.json({ message: 'Hello World' });
});
 
app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

ブラウザをリロードすると、以下のようなJSONが表示されるはずです。

{"message":"Hello World"}

JSON(JavaScript Object Notation) はデータのやり取りに使われる標準的な形式です。

コース1の localStorage でも JSON.stringify()JSON.parse() を使いましたね。APIのもJSON形式が主流です。

Step 5: JSONのパースを有効にする

これから POST でクライアントからJSONデータを受け取る場面が出てきます。Expressがリクエストボディに含まれるJSONを解析できるように、ミドルウェアを追加しておきます。

index.ts
import express from 'express';
 
const app = express();
 
app.use(express.json());  //←追加
 
const PORT = 3000;
 
app.get('/', (req, res) => {
  res.json({ message: 'Hello World' });
});
 
app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

app.use()ミドルウェア を登録するです。ミドルウェアとは、の間に挟まる処理のことです。

express.json() は、リクエストボディのJSONを自動的にパース(解析)して req.body に格納してくれます。

例えば、クライアントが以下のJSONを送った場合:

{ "name": "田中" }

req.body.name"田中" を取得できるようになります。

現在のフォルダ構造

      • index.ts← 作成するファイル
    • package.json
    • package-lock.json
    • tsconfig.json

次のステップ

サーバーが起動し、JSONも返せるようになりました。

次のレッスンでは、勤怠管理のデータ構造を定義して、勤務記録の一覧を返すAPIを作ります。