ホームページ >ウェブフロントエンド >フロントエンドQ&A >nodejsリクエストアドレス
Web 開発のプロセスでは、バックエンドにリクエストを送信したり、データを取得したり、いくつかの操作を実行したりする必要があることがよくあります。 Node.js は、リクエストを送信し、返されたコンテンツを処理するための迅速かつ簡単な方法を提供します。この記事では、Node.js を使用して HTTP/HTTPS リクエストを送信し、返されたリクエストのコンテンツを処理する方法を紹介します。
まず、request
パッケージをインストールする必要があります。これは、Node.js で HTTP リクエストを送信する一般的な方法です。次のコマンドを使用してインストールできます。
npm install request
インストールが完了したら、request
パッケージを使用して HTTP/HTTPS リクエストを送信できます。
request
の使用リクエスト
const request = require('request'); request('https://www.baidu.com', function (error, response, body) { console.log('error:', error); // 打印错误信息 console.log('statusCode:', response && response.statusCode); // 打印响应状态码 console.log('body:', body); // 打印HTML内容 });上記のコードは、Baidu Web サイトに GET リクエストを送信し、応答ステータス コードと HTML コンテンツを出力します。 POST リクエストを送信する必要がある場合は、リクエスト パラメータを含むエンティティを渡す必要があります:
const request = require('request'); request.post('https://api.example.com/login', {form: {username: 'example', password: 'password'}}, function (error, response, body) { console.log('error:', error); // 打印错误信息 console.log('statusCode:', response && response.statusCode); // 打印响应状态码 console.log('body:', body); // 打印响应内容 } );
上記のコードは、POST リクエストを
https://api に送信します。 .example.com/login、ユーザー名とパスワードのパラメータを指定します。
form は、要求されたパラメータを含むパラメータ エンティティです。 応答の処理リクエストが実行されると、
request はコールバックの後に、ステータス コードと応答のエンティティ コンテンツを含む応答オブジェクトを返します。
response.statusCode を使用して応答ステータス コードにアクセスし、
response.body
たとえば、コールバックが HTML コンテンツを返す場合、
cheerio または
node-html-parser
const request = require('request'); const cheerio = require('cheerio'); request('https://www.example.com', function (error, response, body) { if (!error && response.statusCode == 200) { const $ = cheerio.load(body); console.log($('title').text()); } });上記コードでは、cheerio を使用して HTML コンテンツを解析し、Web ページのタイトルを出力します。
コールバックがコンテンツを JSON 形式で返す場合、
JSON.parse
const request = require('request'); request('https://api.example.com/users/1', function (error, response, body) { if (!error && response.statusCode == 200) { const user = JSON.parse(body); console.log(user.name); console.log(user.email); } });上記のコードは、返された JSON コンテンツを解析し、ユーザーの名前と電子メールを出力します。
コールバックがバイナリ コンテンツを返す場合、デコードに
Buffer
const request = require('request'); request('https://www.example.com/logo.png', {encoding: null}, function (error, response, body) { if (!error && response.statusCode == 200) { const data = 'data:' + response.headers['content-type'] + ';base64,' + Buffer.from(body).toString('base64'); console.log(data); } });
上記のコードは、PNG 画像を取得し、
Buffer オブジェクトを使用して、返されたバイナリ データをデコードします。 HTTPS リクエストの送信HTTPS リクエストを送信する必要がある場合は、
https パッケージを使用する必要があります。
https
const https = require('https'); https.get('https://www.example.com', function (response) { console.log('statusCode:', response.statusCode); console.log('headers:', response.headers); response.on('data', function (data) { console.log(data.toString()); }); });
上記のコードは、
https.get メソッドを使用して HTTPS GET リクエストを送信し、応答ステータス コードと応答ヘッダーを出力します。
response.on メソッドを使用して、返されたコンテンツのストリームをリッスンして処理します。 HTTPS リクエストにはセキュリティ認証が必要なため、HTTPS 証明書が必要です。 ca、cert、key、およびその他の属性をパラメーターに追加して、証明書を指定できます。 例: const fs = require('fs'); const https = require('https'); const options = { ca: [fs.readFileSync('ca.pem')], cert: fs.readFileSync('cert.pem'), key: fs.readFileSync('key.pem') }; https.get('https://www.example.com', options, function (response) { console.log('statusCode:', response.statusCode); console.log('headers:', response.headers); response.on('data', function (data) { console.log(data.toString()); }); });
上記のコードは独自の証明書を使用します。ここで、
ca はルート証明書の証明書チェーン、
cert および
key は、独自の証明書と秘密キーです。 概要この記事では、Node.js で HTTP/HTTPS リクエストを送信する方法と、返されたコンテンツを処理する方法を紹介します。最後に、HTTP リクエストの送信にはクロスドメインの問題が伴う可能性があり、クロスドメイン リクエスト ヘッダーを設定する必要があることに注意してください。同時に、リクエストが多すぎたり、機密情報が漏洩したりしないように、セキュリティの問題やパフォーマンスの問題にも注意を払う必要があります。 ###以上がnodejsリクエストアドレスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。