Express.jsのres.sendとres.jsonの違いを徹底解説
ExpressアプリケーションサーバーがHTTPリクエストを受け取ると、開発者に対してオブジェクトが提供されます。このオブジェクトは一般的に「res」と呼ばれています。
resオブジェクトとは
まず、基本的なコード例を見てみましょう。
app.get('/test', (req, res) => {
// ここでreqとresを使用する
})上記の例では、resオブジェクトは、このAPI呼び出しの一部としてクライアントへ送信されるレスポンス(応答)を表しています。開発者はこのresオブジェクトのメソッドを使って、クライアントに返すデータやヘッダー情報を制御します。
res.sendの特徴
res.send()関数は、Content-Typeをtext/htmlに設定します。つまり、クライアント側は受け取ったレスポンスをテキストとして扱うことになります。その後、レスポンスがクライアントに返されます。
文字列、HTML、Buffer、オブジェクトなど、さまざまな型のデータを送信できる柔軟性があるのが特徴です。ただし、送信する内容によって自動的にContent-Typeが判定されるため、意図しない形式で送信される可能性もあります。
res.jsonの特徴
一方、res.json()関数は、Content-Typeヘッダーをapplication/jsonに設定します。これにより、クライアントはレスポンスとして受け取った文字列を有効なJSONオブジェクトとして認識・処理できます。こちらも同様に、レスポンスはクライアントに返されます。
JSON形式のAPIレスポンスを返す場合には、res.json()を使用することで、クライアント側でのデータ解析がスムーズになり、より明確な意図を伝えることができます。
使い分けのポイント
- res.send():HTMLやプレーンテキストなど、JSON以外のデータを返したい場合に適しています。
- res.json():REST APIなどでJSONデータを返すことが明確な場合に使用すると、Content-Typeが正しく設定され、クライアント側の扱いも一貫します。
どちらのメソッドも最終的にはレスポンスをクライアントに返すという同じ役割を果たしますが、Content-Typeの設定が異なる点が最大の違いです。API設計においては、返却するデータの形式に合わせて適切なメソッドを選択することが重要です。
-
Node.jsのsend()・sendStatus()・json()メソッドの違いと使い方
Node.jsのWebアプリケーションフレームワーク「Express」には、サーバーからクライアントへレスポンスを送信するためのメソッドがいくつか用意されています。この記事では、その中でも頻繁に使用されるsend()・sendStatus()・json()の3つのメソッドについて、それぞれの役割の違いと実際の使い方をサンプルコード付きで解説します。 各メソッドの概要と違い send():文字列形式でデータをクライアントへ送信します。テキストやHTMLなど、汎用的なレスポンス送信に適しています。 json():オブジェクトなどをJSON形式に変換して送信します。Content-Typeヘッダ
-
GoとJavaの違いを徹底比較!特徴と使い分けのポイント
プログラミング言語を選ぶ際、「Go」と「Java」のどちらを採用すべきか迷う開発者は少なくありません。どちらもGoogleや企業システムで広く使われる人気言語ですが、設計思想や言語仕様には大きな違いがあります。本記事では、それぞれの言語の特徴を解説したうえで、両者の主な違いを比較表を使ってわかりやすく整理します。 GoとはGoはGoogleが開発した手続き型(プロシージャル)プログラミング言語です。プログラムはパッケージ単位で構成され、シンプルで読みやすいコード記述を重視した設計になっています。動的言語に近い柔軟なパターンを取り入れつつ、静的型付けによる安全性も兼ね備えています。また、軽量スレ