0
1

ExpressでWebサーバーを立ててみる

Posted at

Express

Node.jsのためのWebアプリケーションフレームになり
簡単にWebサーバーを作成できるので作っていく。
※外部APIを呼び出すことができないがAPI仕様書がある場合に
モックサーバーを作ってテストを行ったりしました。

今回はDockerを用いず自分のパソコンにWebサーバーを作成します。

実装してみる

Node.jsでプロジェクトを始める方法は下記ページを見てください。
Node.jsを私用パソコンで始めてみる

今回作成するフォルダ構成は以下になります。

- src
   |- app.js
   |- package.json
   |- package-lock.json
   |- node_modules

※もしNode.jsを私用パソコンで始めてみる、でtestディレクトリを作り、
npm init -yを実行していただいた場合は、testディレクトリ直下にsrcディレクトリを作成し
package.jsonsrcに移動してください

Expressをインストールする

Expressをインストールするためにコマンドプロンプト or ターミナルを開き、
srcフォルダまで移動してください。
カレントディレクトリがsrcになっている状態で以下のコマンドを実行してください。

npm install express

package.jsonに以下の表示ができ、node_modulesディレクトリが作成されます。

"dependencies": {
   "express": "^4.19.2"
 }

サーバーを作成

srcフォルダ内でapp.jsファイルを作成してください。
app.jsファイルに以下のコードを記載してください。
※各行で何を行っているかはコードのコメントを確認してください。

// Expressモジュールを読み込む
const express = require('express');
// Expressインスタンスを生成する
const app = express();
// ポート番号を変数に宣言しておく
const PORT = 8000;

// GET でhttp://localhost:8000がリクエストされたら実行される処理
app.get('/', (req, res) => {
  console.log('app.get(/)が実行されました');
  res.status(200).send('Hello, Express get method');
});

// POST でhttp://localhost:8000がリクエストされたら実行される処理
app.post('/', (req, res) => {
  console.log('app.post(/)が実行されました');
  res.status(200).send('Hello, Express post method');
});

// 指定されたポートでサーバーを起動
app.listen(PORT, () => console.log(`listen on port... ${PORT}`));

サーバーを起動する

コマンドプロンプト or ターミナルでsrcフォルダへ移動し下記コマンドを実行してください。

node app.js

その後に以下のような出力があるとサーバーが起動しております。

listen on port... 8000

動作確認

サーバーを起動で利用したコマンドプロンプト or ターミナルとは別で新しいウィンドウを開いてください。
新しく開いたウィンドウで以下のコマンドを実行してください。

curl http://localhost:8000

下記レスポンスが返ってきます。

Hello, Express get method

また、サーバーを立ち上げるときに利用したウィンドウでは以下が出力されます。

app.get(/)が実行されました

POSTメソッドを確認する場合は以下のコマンドを実行してください。

curl -X POST http://localhost:8000

下記レスポンスが返ってきます。

Hello, Express post method

また、サーバーを立ち上げるときに利用したウィンドウでは以下が出力されます。

app.post(/)が実行されました

簡易的なWebサーバーの作成が出来ました。
これから少しずつ改良していきます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1