目次
Text
Node.js HTTPS モジュール
ノード。 js 標準ライブラリには https モジュールがあるため、リクエストを開始するためにライブラリを導入する必要はありません。node.js 自体で実行できるため、いくつかの単純なデータ リクエストを処理するには十分です。
フロントエンドの友人は axios をよく知っていると思います。非常に人気があり、人気の Promise リクエスト ライブラリです。ブラウザとクライアントの両方で利用でき、インターセプタやjsonへの自動変換など非常に便利な機能も備えているのはご存知の通りです。 " >Axiosフロントエンドの友人は axios をよく知っていると思います。非常に人気があり、人気の Promise リクエスト ライブラリです。ブラウザとクライアントの両方で利用でき、インターセプタやjsonへの自動変換など非常に便利な機能も備えているのはご存知の通りです。
got は、「Node 用のユーザーフレンドリーで強力な HTTP リクエスト」であると主張しています。 js「ライブラリ」は、Promise スタイルの API と JOSN 処理構成関数を使用しているため、使いやすいですが、HTTP2 サポート、ページング API、RFC キャッシュなどの一部の機能は、ほとんどのリクエスト ライブラリでは利用できません。 " >got は、「Node 用のユーザーフレンドリーで強力な HTTP リクエスト」であると主張しています。 js「ライブラリ」は、Promise スタイルの API と JOSN 処理構成関数を使用しているため、使いやすいですが、HTTP2 サポート、ページング API、RFC キャッシュなどの一部の機能は、ほとんどのリクエスト ライブラリでは利用できません。
##needle は比較的シンプルでコンパクトなリクエスト ライブラリで、その形式は Promise メソッドにすることができます。自分の習慣に応じてコールバック関数にすることもでき、その戻り値は XML と JSON を自動的に変換してくれるので、これも非常に便利です。 次のコマンドを使用してニードルをインストールできます: " >##needle は比較的シンプルでコンパクトなリクエスト ライブラリで、その形式は Promise メソッドにすることができます。自分の習慣に応じてコールバック関数にすることもでき、その戻り値は XML と JSON を自動的に変換してくれるので、これも非常に便利です。 次のコマンドを使用してニードルをインストールできます:
Node-fetch" >Node-fetch
对比
结语
ホームページ ウェブフロントエンド jsチュートリアル ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

Dec 09, 2022 pm 08:08 PM
nodejs​ node http httpリクエスト

Node で HTTP リクエストを開始するにはどうすればよいですか?この記事では、HTTP リクエストを開始するための Node の 6 つの異なるメソッドについて説明します。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

この記事では、nodejs で HTTP リクエストを開始する 6 つの異なる方法を紹介します。ここでは、 リクエストについて詳しく見ていきます。 Jin Community のセクション分類インターフェイス は、それぞれの異なるメソッドの使用を完了するためのデモンストレーションとして使用されます。もちろん、取得したデータをより鮮明に印刷するには、chalk ライブラリをインストールする必要があります 事前に印刷したデータに色を追加してください。いよいよ開始します~ [関連チュートリアルの推奨事項: nodejs ビデオ チュートリアル プログラミング教育 ]

Text


Node.js HTTPS モジュール
ノード。 js 標準ライブラリには https モジュールがあるため、リクエストを開始するためにライブラリを導入する必要はありません。node.js 自体で実行できるため、いくつかの単純なデータ リクエストを処理するには十分です。

const chalk = require("chalk")
const https = require('https')

https.get('https://api.juejin.cn/tag_api/v1/query_category_briefs', res => {
    let list = [];
    res.on('data', chunk => {
        list.push(chunk);
    });
    res.on('end', () => {
        const { data } = JSON.parse(Buffer.concat(list).toString());
        data.forEach(item => {
            console.log(`${chalk.yellow.bold(item.rank)}.${chalk.green(item.category_name)}`);
        })
    });
}).on('error', err => {
    console.log('Error: ', err.message);
});
ログイン後にコピー

リクエスト データ ブロック チャンクを格納する空の配列リストを作成する必要があり、リクエストが完了した後、データをバッファを通じて処理して解析する必要があるため、構造は少し複雑です。 json形式に変換します。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

Axiosフロントエンドの友人は axios をよく知っていると思います。非常に人気があり、人気の Promise リクエスト ライブラリです。ブラウザとクライアントの両方で利用でき、インターセプタやjsonへの自動変換など非常に便利な機能も備えているのはご存知の通りです。

次のコマンドを使用して axios をインストールできます:

npm i -S axios
ログイン後にコピー

以下は、axios を通じてナゲッツ プレート分類を取得する方法の簡単な例です。

##

const chalk = require("chalk")
const axios = require('axios');

axios.get('https://api.juejin.cn/tag_api/v1/query_category_briefs')
.then(res => {
    const { data } = res.data
    data.forEach(item => {
        console.log(`${chalk.yellow.bold(item.rank)}.${chalk.green(item.category_name)}`);
    })
})
.catch(err => {
    console.log('Error: ', err.message);
});
ログイン後にコピー
ここでは、axios は get リクエストを直接使用してインターフェイスをリクエストします。構造は Promise の形式にすることもでき、データは自動的に json に解析されます。シンプルで便利。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

Got

got は、「Node 用のユーザーフレンドリーで強力な HTTP リクエスト」であると主張しています。 js「ライブラリ」は、Promise スタイルの API と JOSN 処理構成関数を使用しているため、使いやすいですが、HTTP2 サポート、ページング API、RFC キャッシュなどの一部の機能は、ほとんどのリクエスト ライブラリでは利用できません。

次のコマンドを使用して got:

npm i -S got@10.7.0
ログイン後にコピー
をインストールできます。次は、got を通じてナゲッツ プレート分類を取得する方法の簡単な例です:

const chalk = require("chalk")
const got = require('got');

got.get('https://api.juejin.cn/tag_api/v1/query_category_briefs', {
    responseType: 'json'
})
.then(res => {
    const { data } = res.body
    data.forEach(item => {
        console.log(`${chalk.yellow.bold(item.rank)}.${chalk.green(item.category_name)}`);
    })
})
.catch(err => {
    console.log('Error: ', err.message);
});
ログイン後にコピー
ここでは、最初にリクエスト インターフェイス {responseType: 'json'}

を設定する必要があります。その後、返されたデータを本文で取得できます。これも非常に簡単です。使用。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析#Needle

##needle は比較的シンプルでコンパクトなリクエスト ライブラリで、その形式は Promise メソッドにすることができます。自分の習慣に応じてコールバック関数にすることもでき、その戻り値は XML と JSON を自動的に変換してくれるので、これも非常に便利です。 次のコマンドを使用してニードルをインストールできます:

npm i -S needle
ログイン後にコピー

次は、ニードルを通じてナゲッツ セクション分類を取得する方法の簡単な例です。 ##

const chalk = require("chalk")
const needle = require('needle');

needle.get('https://api.juejin.cn/tag_api/v1/query_category_briefs', (err, res) => {
    if (err) return console.log('Error: ', err.message);
    const { data } = res.body
    data.forEach(item => {
        console.log(`${chalk.yellow.bold(item.rank)}.${chalk.green(item.category_name)}`);
    })
})
ログイン後にコピー
ここでは、コールバック関数の使用を示します。戻り値には err と res が含まれていることがわかります。成功した場合、err は null です。成功後に返される res の本体は、要求されるデータです。 . ここでは、自動的に変換された json 形式を支援する方法を説明します。

#Promise を使用したい場合は、次のように記述できます:

needle('get', 'https://api.juejin.cn/tag_api/v1/query_category_briefs')
.then(function(res) {
    // ...
})
.catch(function(err) {
    // ...
});
ログイン後にコピー

Superagentノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

##リクエスト ライブラリ スーパーエージェントは、2011 年に遡るかなり早い時期にリリースされましたが、同じ API を備えた Node.js モジュールを使用して多くの高度な HTTP クライアント機能をサポートする、進歩的なクライアント HTTP リクエスト ライブラリです。

次のコマンドを使用してスーパーエージェントをインストールできます:
npm i -S superagent
ログイン後にコピー

下面是我们通过superagent获取掘金板块分类简单示例:

const chalk = require("chalk")
const superagent = require('superagent');

superagent.get('https://api.juejin.cn/tag_api/v1/query_category_briefs')
.then(res => {
    const { data } = JSON.parse(res.text)
    data.forEach(item => {
        console.log(`${chalk.yellow.bold(item.rank)}.${chalk.green(item.category_name)}`);
    })
})
.catch(err => {
    console.log('Error: ', err.message);
});
ログイン後にコピー

现在的superagent用法与axios十分的相似,但是需要去自己把数据处理成json格式。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

Node-fetch

顾名思义,这个请求库它的api与window.fetch保持了一致,也是promise式的。最近非常受欢迎,但可能最大的问题是,它的v2与v3版差异比较大,v2保持着cjs标准,而v3则用了ejs的方式,升级后可能造成一些困扰,所以为了统一这个标准我们这里用了2.6.7版作为演示版本。

我们可以使用以下命令安装node-fetch:

npm i -S node-fetch@2.6.7
ログイン後にコピー

下面是我们通过node-fetch获取掘金板块分类简单示例:

const chalk = require("chalk")
const fetch = require("node-fetch")

fetch('https://api.juejin.cn/tag_api/v1/query_category_briefs', {
    method: 'GET'
})
.then(async res => {
    let { data } = await res.json()
    data.forEach(item => {
        console.log(`${chalk.yellow.bold(item.rank)}.${chalk.green(item.category_name)}`);
    })
})
.catch(err => {
    console.log('Error: ', err.message);
});
ログイン後にコピー

可以看出它与window.fetch用起来完全一样,没有任何学习压力。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

对比


接下来我们看一下关于这几款请求库近一年的下载量趋势图:

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

现在我们可以发现,就下载量而言,在过去一年中,node-fetch 最受欢迎,needle 最不受欢迎。


Stars Version Unpacked Size Created Years
axios 91,642 0.26.1 398 kB 2014
got 10,736 12.0.1 244 kB 2014
needle 1,446 3.0.0 227 kB 2012
superagent 15,928 7.1.1 581 kB 2011
node-fetch 7,434 3.2.3 106 kB 2015

这里我们又统计了这几个库的其他一些数据,axios的star数量可谓一骑绝尘,远远超过其他几个库。

结语

这些请求库,他们都做了同一件事都可以发起HTTP请求,或许写法会有些许不同,但都是条条大路通罗马。就个人而言,也可能是经常写浏览器端的缘故,所以是axios的忠实用户,不管是练习还是开发axios都是首选,当然node-fetch也越来越收到关注,包也十分的小,练习的时候也会经常用到,但api使用起来感觉还是没有axios那般方便。

其实还有两个出名的HTTP请求库本文没有提到:

一个是ky.js,它是一个非常小巧且强大的fetch式的请求库,主要为deno和现代浏览器所打造,所以暂时不参与其中的讨论,感兴趣的同学自己探索。

另一个就是request.js,没有说的原因是它在2020年的时候就已经被完全弃用了,如果有使用过的小伙伴可以在把项目里的request它替换成其他的方法。

ノードが HTTP リクエストを開始する 6 つの方法の簡単な分析

更多node相关知识,请访问:nodejs 教程

以上がノードが HTTP リクエストを開始する 6 つの方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

http ステータス コード 520 は何を意味しますか? http ステータス コード 520 は何を意味しますか? Oct 13, 2023 pm 03:11 PM

HTTP ステータス コード 520 は、サーバーがリクエストの処理中に不明なエラーに遭遇し、より具体的な情報を提供できないことを意味します。サーバーがリクエストを処理しているときに不明なエラーが発生したことを示すために使用されます。サーバー構成の問題、ネットワークの問題、またはその他の不明な理由が原因である可能性があります。これは通常、サーバー構成の問題、ネットワークの問題、サーバーの過負荷、またはコーディング エラーが原因で発生します。ステータス コード 520 エラーが発生した場合は、Web サイト管理者またはテクニカル サポート チームに連絡して詳細情報と支援を得ることが最善です。

原因分析: HTTP リクエスト エラー 504 ゲートウェイ タイムアウト 原因分析: HTTP リクエスト エラー 504 ゲートウェイ タイムアウト Feb 19, 2024 pm 05:12 PM

http リクエスト エラーの理由の簡単な説明: 504GatewayTimeout: ネットワーク通信中、クライアントは HTTP リクエストを送信することでサーバーと対話します。ただし、リクエストの送信プロセス中にエラー メッセージが表示される場合があります。そのうちの 1 つは 504GatewayTimeout エラーです。この記事では、このエラーの原因と解決策について説明します。 504GatewayTimeout エラーとは何ですか?ゲートウェイタイムオ

解決策: HTTP リクエストの処理時のソケット エラー 解決策: HTTP リクエストの処理時のソケット エラー Feb 25, 2024 pm 09:24 PM

http リクエスト エラー: SocketError の解決策 ネットワーク リクエストを行うときに、さまざまなエラーが発生することがよくありますが、その一般的な問題の 1 つが SocketError です。このエラーは、アプリケーションがサーバーとの接続を確立できない場合にスローされます。この記事では、SocketError の一般的な原因と解決策について説明します。まず、Socket とは何かを理解する必要があります。ソケットは、アプリケーションが次のことを可能にする通信プロトコルです。

Golang を使用して HTTP リクエストのクエリ パラメータを設定する Golang を使用して HTTP リクエストのクエリ パラメータを設定する Jun 02, 2024 pm 03:27 PM

Go で HTTP リクエストのクエリ パラメータを設定するには、クエリ パラメータの名前と値をパラメータとして受け入れる http.Request.URL.Query().Set() メソッドを使用できます。具体的な手順は次のとおりです。 新しい HTTP リクエストを作成します。クエリパラメータを設定するには、Query().Set() メソッドを使用します。リクエストをエンコードします。リクエストを実行します。クエリパラメータの値を取得します(オプション)。クエリパラメータを削除します(オプション)。

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Feb 18, 2024 pm 08:41 PM

HTTP 301 ステータス コードの意味を理解する: Web ページ リダイレクトの一般的なアプリケーション シナリオ インターネットの急速な発展に伴い、Web ページの操作に対する人々の要求はますます高くなっています。 Web デザインの分野では、Web ページのリダイレクトは一般的かつ重要なテクノロジであり、HTTP 301 ステータス コードによって実装されます。この記事では、HTTP 301 ステータス コードの意味と、Web ページ リダイレクトにおける一般的なアプリケーション シナリオについて説明します。 HTTP301 ステータス コードは、永続的なリダイレクト (PermanentRedirect) を指します。サーバーがクライアントのメッセージを受信すると、

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

Python HTTP リクエスト最適化ガイド: Web アプリケーションのパフォーマンスを向上させる Python HTTP リクエスト最適化ガイド: Web アプリケーションのパフォーマンスを向上させる Feb 24, 2024 pm 02:40 PM

PythonHttp リクエストのパフォーマンスを最適化することは、Web アプリケーションの速度と応答性を向上させるために重要です。このガイドでは、ネットワーク アプリケーションのパフォーマンスを向上させるために Python HTTP リクエストを最適化するためのヒントとベスト プラクティスをいくつか紹介します。 1. 接続プーリングを使用します。接続プーリングは、HTTP 接続を管理するためのメカニズムです。これにより、接続の作成と破棄のオーバーヘッドが削減され、HTTP リクエストのパフォーマンスが向上します。 Python は、接続プールのサポートが組み込まれたリクエスト ライブラリを提供します。接続プールを有効にするには、Session オブジェクトを作成するときに pool_connections パラメータを渡すだけで済みます。 importrequestssession=リクエスト.セッション(

Nginx が HTTP リクエストの再試行構成を実装する方法 Nginx が HTTP リクエストの再試行構成を実装する方法 Nov 08, 2023 pm 04:47 PM

Nginx が HTTP リクエストの再試行構成を実装する方法には、特定のコード サンプルが必要です。Nginx は、非常に人気のあるオープン ソースのリバース プロキシ サーバーです。強力な機能と柔軟な構成オプションがあり、HTTP リクエストの再試行構成を実装するために使用できます。ネットワーク通信では、ネットワーク遅延やサーバー負荷などのさまざまな理由により、開始した HTTP リクエストが失敗することがあります。アプリケーションの信頼性と安定性を向上させるために、リクエストが失敗した場合に再試行する必要がある場合があります。 Ngの使い方を紹介します。

See all articles