ホームページ > ウェブフロントエンド > フロントエンドQ&A > nodejsリクエストはjsonデータを返します

nodejsリクエストはjsonデータを返します

王林
リリース: 2023-05-08 18:48:07
オリジナル
1683 人が閲覧しました

Node.js は、非常に人気のあるサーバーサイド JavaScript ランタイム環境です。これは、高パフォーマンスの Web アプリケーションを構築するための強力なツールです。 API 関数からデータを収集する必要がある場合、HTTP リクエストは不可欠です。最新の API のほとんどは JSON 形式でデータを返すため、JSON データをリクエストして返す方法を処理することは、Node.js における非常に重要なタスクです。

Node.js では、組み込みの http モジュールを使用して HTTP リクエストを作成できます。 HTTP リクエストを送信してリモート サーバーからデータを取得し、それを JSON 形式のデータに解析できます。以下は、Node.js を使用して HTTP リクエストを作成し、JSON レスポンスを受信する例です。

const https = require('https');

const options = {
    hostname: 'api.example.com',
    port: 443,
    path: '/data',
    method: 'GET'
};

const req = https.request(options, res => {
    console.log(`statusCode: ${res.statusCode}`);

    let data = '';

    res.on('data', d => {
        data += d;
    });

    res.on('end', () => {
        const json = JSON.parse(data);
        console.log(json);
    });
});

req.on('error', error => {
    console.error(error);
});

req.end();
ログイン後にコピー

上記の例では、https モジュールは request()# を提供します。 ##options オブジェクトをパラメータとして渡す関数。このオブジェクトには、ホスト名、ポート、リクエスト パス、リクエスト メソッドなどの情報が含まれます。 request() 関数は http.ClientRequest オブジェクトを返します。このオブジェクトの end() メソッドを呼び出してリクエストを送信できます。

リモート サーバーがリクエストに応答すると、応答の「データ」イベントをリッスンして、データをバッファに追加できます。応答が完了したら、

JSON.parse() 関数を使用して、バッファ内のデータを JSON 形式のデータに解析できます。

API 応答を処理するときは、HTTP 応答のステータス コードが 200 であることを確認する必要があります。ただし、処理する必要があるステータス コードはこれだけではありません。他の一般的なステータス コードもあります。

    404 (見つかりません): 要求されたリソースは存在しません
  • 401 ( Unauthorized): ユーザーは法的身分証明書を提供する必要があります。
  • 500 (内部サーバー エラー): サーバーで予測不可能なエラーが発生しました
これらのステータス コードも処理する必要があります。たとえば、リクエストが 404 応答コードを返した場合、「リソースが見つかりません」のようなメッセージをユーザーに送信できます。

const https = require('https');

const options = {
    hostname: 'api.example.com',
    port: 443,
    path: '/data',
    method: 'GET'
};

const req = https.request(options, res => {
    let data = '';

    res.on('data', d => {
        data += d;
    });

    res.on('end', () => {
        const json = JSON.parse(data);
        console.log(json);
    });
});

req.on('error', error => {
    console.error(error);
});

req.end();
ログイン後にコピー

上の例では、HTTP 応答ステータス コードを無視しました。これは便利ですが、非常に危険です。サーバーがエラー ステータス コードを返した場合、エラーの原因を知る必要がある場合があります。この目標を達成するには、

request() 関数のコールバックで応答ステータス コードをチェックする必要があります。ステータス コードが 200 でない場合は、res.statusMessage フィールドを使用して応答ステータス メッセージを取得できます。

const https = require('https');

const options = {
    hostname: 'api.example.com',
    port: 443,
    path: '/data',
    method: 'GET'
};

const req = https.request(options, res => {
    if (res.statusCode !== 200) {
        console.error(`请求失败: ${res.statusMessage}`);
        res.resume();
        return;
    }

    let data = '';

    res.on('data', d => {
        data += d;
    });

    res.on('end', () => {
        const json = JSON.parse(data);
        console.log(json);
    });
});

req.on('error', error => {
    console.error(error);
});

req.end();
ログイン後にコピー
上記のコードでは、HTTP メッセージが送信されたときにエラー メッセージを出力します。応答ステータス コードが 200 ではありません。エラーが発生した場合は、

res.resume() メソッドを呼び出してキャッシュをクリアし、データの処理時に応答を終了します。コードが原因ではないリクエスト エラーが発生した場合は、res.resume() メソッドを呼び出すと便利な場合があります。

概要

Node.js での JSON データのリクエストと解析は非常に簡単です。組み込みの HTTP モジュールにはリクエスト機能が用意されており、この機能を使用することで、Node.js プログラムで HTTP リクエストの送信と Json レスポンスの受信が可能になります。上記のコードを使用すると、API エンドポイント データを取得し、JSON 形式のデータを簡単に解析できます。ただし、HTTP レスポンスのステータスコードが 200 以外の場合や、その他の HTTP リクエストのエラーなど、一部の異常な状況に注意する必要があります。完全なエラー処理により、コードをより堅牢にすることができます。

以上がnodejsリクエストはjsonデータを返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート