JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

Node.jsのsend()・sendStatus()・json()メソッドの違いと使い方

Node.jsのWebアプリケーションフレームワーク「Express」には、サーバーからクライアントへレスポンスを送信するためのメソッドがいくつか用意されています。この記事では、その中でも頻繁に使用されるsend()sendStatus()json()の3つのメソッドについて、それぞれの役割の違いと実際の使い方をサンプルコード付きで解説します。

各メソッドの概要と違い

  • send():文字列形式でデータをクライアントへ送信します。テキストやHTMLなど、汎用的なレスポンス送信に適しています。
  • json():オブジェクトなどをJSON形式に変換して送信します。Content-Typeヘッダーも自動的に「application/json」に設定され、APIのレスポンスとして最もよく使われる形式です。
  • sendStatus():指定したHTTPステータスコードをクライアントへ送信します。主なステータスコードには、200(OK/成功)、201(Created/作成完了)、404(Not Found/リソースが見つからない)、503(Service Unavailable/サービス利用不可)などがあります。

前提条件

  • Node.jsがインストール済みであること
  • Express.jsがインストール済みであること

Expressのインストール手順

まず、プロジェクトフォルダ内で以下のコマンドを実行し、expressモジュールをインストールします。

npm install express

サンプル1:sendStatus()メソッド

「sendStatus.js」というファイルを作成し、以下のコードを貼り付けてください。

// expressモジュールの読み込み
const express = require('express');
const app = express();

// '/'パスへのリクエストに対するレスポンス送信
app.get('/', (req, res) => {
    // ステータスコード:200(OK)
    res.sendStatus(200);
});

// ポート3000番でサーバーを起動
app.listen(3000, () => {
    console.log("server running");
});

ファイル保存後、次のコマンドでプログラムを実行します。

node sendStatus.js

動作確認

ブラウザでhttps://localhost:3000にアクセスすると、画面に「OK」と表示され、HTTPステータスコード200が正常に返されていることを確認できます。

サンプル2:send()メソッド

続いて、「send.js」というファイルを作成し、以下のコードを記述します。

// expressモジュールの読み込み
const express = require('express');
const app = express();

// 表示する見出しテキストを定義
var heading = "Welcome to TutorialsPoint !";

// '/'パスへのリクエストに対するレスポンス送信
app.get('/', (req, res) => {
    // 見出しテキストを送信
    res.send(heading);
});

// ポート3000番でサーバーを起動
app.listen(3000, () => {
    console.log("server running");
});

次のコマンドで実行します。

node send.js

動作確認

ブラウザでhttps://localhost:3000にアクセスすると、「Welcome to TutorialsPoint !」というテキストが画面に表示されます。send()メソッドは、引数に渡した文字列をそのままレスポンスボディとして返すことがわかります。

サンプル3:json()メソッド

最後に、「json.js」というファイルを作成し、以下のコードを記述します。

// expressモジュールの読み込み
const express = require('express');
const app = express();

// 送信するJSONデータを定義
var data = {
    portal: "TutorialsPoint",
    tagLine: "SIMPLY LEARNING",
    location: "Hyderabad"
};

// '/'パスへのリクエストに対するレスポンス送信
app.get('/', (req, res) => {
    // JSONデータを送信
    res.json(data);
});

// ポート3000番でサーバーを起動
app.listen(3000, () => {
    console.log("server running");
});

次のコマンドで実行します。

node json.js

動作確認

ブラウザでhttps://localhost:3000にアクセスすると、以下のようなJSON形式のレスポンスが表示されます。

{
  "portal": "TutorialsPoint",
  "tagLine": "SIMPLY LEARNING",
  "location": "Hyderabad"
}

まとめ

send()は文字列、json()はJSON形式、sendStatus()はステータスコードの送信に、それぞれ特化したメソッドです。用途に応じて使い分けることで、クライアントにより適切なレスポンスを返すことができます。特にREST APIを開発する際は、json()とsendStatus()を組み合わせて使うのが一般的なので、ぜひ覚えておきましょう。

  1. JavaScriptのJSON.parse()メソッドとは?基本の使い方とサンプルコードを解説

    JSON.parse()メソッドとはJSON.parse()メソッドは、JSON形式の文字列を解析(パース)し、そこからJavaScriptオブジェクトを生成するためのメソッドです。Web APIなどから受け取ったJSONデータをJavaScriptで扱える形に変換する際に、最もよく使われる手法の一つです。基本的な構文は以下の通りです。JSON.parse(text[, reviver])第1引数には解析対象のJSON文字列を指定し、省略可能な第2引数のreviver関数を使うと、変換後の値を加工することもできます。サンプルコード以下は、JSON.parse()メソッドを使ってJSON文字列を

  2. Node.jsのsend()・sendStatus()・json()メソッドの違いと使い方

    Node.jsのWebアプリケーションフレームワーク「Express」には、サーバーからクライアントへレスポンスを送信するためのメソッドがいくつか用意されています。この記事では、その中でも頻繁に使用されるsend()・sendStatus()・json()の3つのメソッドについて、それぞれの役割の違いと実際の使い方をサンプルコード付きで解説します。 各メソッドの概要と違い send():文字列形式でデータをクライアントへ送信します。テキストやHTMLなど、汎用的なレスポンス送信に適しています。 json():オブジェクトなどをJSON形式に変換して送信します。Content-Typeヘッダ