Node.jsとは?

JavaScriptを使って、サーバーやパソコンの裏側で処理を行えるようにする仕組みです。 接客係のJavaScriptを裏方として使えるため、お客さんが見ている表側ではなく、見えないところで働く「調理係」として活躍します。

WEB界のキッチンカー

WEB界のキッチンカー
接客と調理をミニマムなスペースで行えるキッチンカー。 レストランなどの物件を探すより、移動できる車で調理販売できるキッチンカーのように、小規模なWEBサイトでも複雑なことを手軽に導入できます。
  • レストランのように大規模な設備は不要

    最小限の環境で動かせる。サーバーを立ち上げるのもシンプルで、すぐに「販売開始」できる。
  • 接客と調理を一体化

    フロント(接客)とバックエンド(調理)を同じ JavaScript で扱える。ユーザーとのやり取りからデータ処理まで、ワンストップで完結。
  • クラウドやローカル、どこでも動かせる

    必要に応じて場所を変えられるのは、まさにキッチンカーの強み。
  • 規模は関係なし

    規模が小さいサイトでも、リアルタイム通信や API 提供など「本格的な料理」を提供できる。

ローカルPCでの利用ポイント

  • インストールできる

    Node.js公式サイトからダウンロードして、Windows・Mac・Linuxで導入できます。
  • コマンドラインで動かせる

    インストール後は node ファイル名.js と入力するだけで実行できます。
  • サーバーも立てられる

    ローカルPC上で簡単なWebサーバーを立てて、ブラウザからアクセスできます。
  • 学習や試作に最適

    本番環境に移す前に、ローカルでコードを試したりサンプルを動かせます。

How to ローカル導入

  • 公式サイトからダウンロード

    公式サイトから最新版を入手します。Node.js公式サイト (https://nodejs.org/)
  • インストール

    セットアップすると「node」と「npm」が使えるようになります。
  • バージョン確認

    ターミナルで node -v を入力すると、インストール確認ができます。
  • Hello World

    テキストエディターでconsole.log("Hello World"); と書いてhello.jsというファイル名で保存し、 コマンドラインでnode hello.jsと入力したら実行してみましょう。

Node.jsでできることの例

ここでは「Hello World」を返すだけのサーバーを作ってみます。とても短いコードで、Node.jsの基本がわかります。


// Node.jsでサーバーを作るサンプル
const http = require('http');

// サーバーを作成
const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World');
});

// ポート3000で待ち受け
server.listen(3000, () => {
  console.log('http://localhost:3000 で動いています');
});
    
  • require('http')

    → サーバーを作るための部品を呼び出します。
  • createServer

    → サーバーを作り、「リクエストが来たらどう返すか」を決めます。
  • res.end('Hello World')

    → 画面に「Hello World」と返します。
  • listen(3000)

    → ポート3000で待ち受けます。ブラウザで http://localhost:3000 にアクセスすると見られます。

Node.jsで入力を受け取って返すサンプル

ここでは、URLに入力した文字を受け取り、そのまま返すサーバーを作ります。


// Node.jsで入力を受け取って返すサンプル
const http = require('http');
const url = require('url');

// サーバーを作成
const server = http.createServer((req, res) => {
  const queryObject = url.parse(req.url, true).query;
  const message = queryObject.text || '入力がありません';

  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('あなたの入力: ' + message);
});

// ポート3000で待ち受け
server.listen(3000, () => {
  console.log('http://localhost:3000?text=こんにちは で試せます');
});
    
  • url.parse(req.url, true)

    → アクセスされたURLを分解して、入力(クエリ)を取り出します。
  • queryObject.text

    → URLの ?text=〇〇 の部分を受け取ります。
  • res.end('あなたの入力: ' + message)

    → 受け取った文字をそのまま返します。