🧊

【Hello World⑫】Node.js @ JavaScript

2024/04/14に公開

Node.jsでJavaScriptのWebアプリを作ります

Windows11のDocker環境上で
JavaScript言語のAPIを作ります。JavaScriptの実行環境にはNode.jsを使います。

環境

Windows 11 Pro 23H2
WLS 2.1.5.0(Ubuntu 22.04.1 LTS)
Docker Desktop 4.28.0
Visual Studio Code

①フォルダ・ファイルを作成

以下の構成でフォルダとファイルを作ります。

フォルダ構成
vue
 ├─app
 │  └─index.js    # アプリ
 └─compose.yaml   # コンテナ作成時の指示を記載したファイル

以下のコマンドでフォルダ・ファイルを作成します。

PowerShell
mkdir node            ;`
cd node               ;`
mkdir app             ;`
New-Item compose.yaml ;`
New-Item app/index.js ;`
code  compose.yaml    ;`
code app/index.js

ファイルに以下の内容を記載します。

compose.yaml
services:
  web:
    image          : node:18.18.2
    container_name : node
    command        : npx nodemon --legacy-watch
    working_dir    : /app
    volumes:
      - ./app:/app
    ports:
      - "3000:3000"
index.js
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World Node.js on Docker!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

②Node.jsのプロジェクトを作成

以下のコマンドを実行し、Node.jsのプロジェクトを作成します。

PowerShell
docker compose run --rm -it web `
bash -c "yarn init -y && `
         yarn add express && `
         yarn add --dev nodemon"

※npmコマンドでプロジェクトを作成する場合はこちら。

PowerShell
docker compose run --rm -it web `
bash -c "npm init -y && `
         npm install express && `
         npm install --save-dev nodemon"
作成されるフォルダ・ファイルの構成と「package.json」の内容
フォルダ構成(yarnでプロジェクトを作成した場合)
node
 ├─app
 │   ├─node_modules
 │   ├─index.js
 │   ├─package.json
 │   └─yarn.lock
 └─compose.yaml
package.json
{
  "name": "app",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express": "^4.19.2"
  },
  "devDependencies": {
    "nodemon": "^3.1.0"
  }
}

③Node.jsのコンテナを起動

以下のコマンドを実行し、Node.jsのコンテナを起動します。

PowerShell
docker compose up -d

④Hello Worldが表示されることを確認

http://localhost:3000に接続して、Hello Worldが表示されていることを確認。

Discussion