目次
なぜRSSアグリゲーターを構築するのですか?
1.プロジェクトを設定します
2。RSSフィードをフェッチおよび解析します
3.結果を表示または提供します
4。キャッシュで強化(オプション)
最終的な考え
ホームページ バックエンド開発 XML/RSS チュートリアル node.jsを使用してシンプルなRSSフィードアグリゲーターを構築します

node.jsを使用してシンプルなRSSフィードアグリゲーターを構築します

Sep 20, 2025 am 05:47 AM
node.js RSS聚合

RSSアグリゲーターを構築するには、node.jsを使用してAxiosとRSS-Parserパッケージを組み合わせて、複数のRSSソースをつかんで解析する必要があります。まず、プロジェクトを初期化して依存関係をインストールしてから、aggregator.jsのハッカーニュース、TechCrunch、その他のソースを含むURLリストを定義します。 Promise.allを介して各ソースからデータを同時に取得して処理します。タイトル、リンク、リリース時間、ソースを抽出し、逆順に配置します。次に、コンソールを出力したり、Expressでサーバーを作成して、JSON形式で結果を返すことができます。最後に、キャッシュメカニズムを追加して、頻繁にリクエストを回避し、パフォーマンスを改善し、それにより効率的で拡張可能なRSS集約システムを実現できます。

node.jsを使用してシンプルなRSSフィードアグリゲーターを構築します

node.jsを使用してRSSフィードアグリゲーターを構築することは、それが思っているよりも簡単です。ほんの数個のパッケージと少しのJavaScriptを使用すると、複数のブログやニュースサイトからコンテンツを引き込み、1か所に表示できます。 node.jsを使用して基本的なRSSフィードアグリゲーターを構築する方法は次のとおりです。

node.jsを使用してシンプルなRSSフィードアグリゲーターを構築します

なぜRSSアグリゲーターを構築するのですか?

RSS(本当にシンプルなシンジケーション)フィードは、Webサイトを標準化された形式で頻繁に更新するコンテンツを公開します。アグリゲーターはこれらのフィードを引き出し、解析し、最新の記事を統一された方法で提示します。各サイトに個別にアクセスすることなく、ブログ、ニュース、またはポッドキャストを追跡するのに役立ちます。

Node.jsは、その強力なエコシステムと非同期機能のためにこれに適しています。複数のフィードの取得と処理に最適です。

node.jsを使用してシンプルなRSSフィードアグリゲーターを構築します

1.プロジェクトを設定します

新しいnode.jsプロジェクトを初期化することから始めます。

 MKDIR RSS-Aggregator
CD RSS-Aggregator
npm init -y

必要な依存関係をインストールします。 HTTPリクエストにaxiosを使用し、RSSフィードを解析するためにrss-parser使用します。

 npm axios rss-parserをインストールします

2。RSSフィードをフェッチおよび解析します

aggregator.jsというファイルを作成します。これは、いくつかのフィードを取得して解析する基本的なスクリプトです。

 const parser = require( 'rss-parser');
const parser = new Parser();

async関数aggregatefeeds(){
  const feedurls = [
    'https://hnrss.org/newest'、//ハッカーニュース
    'https://feeds.feedburner.com/blogspot/gjzgy'、// techcrunch
    'https://rss.simplecast.com/podcasts/4661/rss' //ポッドキャストまたはブログ
  ];

  const feedpromises = feedurls.map(async(url)=> {
    試す {
      const feed = await parser.parseurl(url);
      return feed.items.map(item =>({
        タイトル:item.title、
        リンク:item.link、
        pubdate:item.pubdate、
        出典:Feed.Title
      }));
    } catch(err){
      console.error( `$ {url}:`、err.message)を取得できませんでした。
      戻る [];
    }
  });

  const results = await promise.all(feedpromises);
  const allitems = results.flat();

  //日付で並べ替え、最新の最初のもの
  allitems.sort((a、b)=> new Date(b.pubdate) -  new Date(a.pubdate));

  allitemsを返します。
}

この機能:

  • RSSフィードURLのリストを定義します
  • Promise.allを使用して同時にそれらを取得します
  • 各フィードのアイテムを一貫したフィールドにマッピングします
  • エラーを優雅に処理します(たとえば、フィードが到達できない場合)
  • 公開日ごとにすべての記事を平らにして並べ替えます

3.結果を表示または提供します

結果をコンソールにログに記録できます。

 // Aggregator.jsの下部に追加します
aggregatefeeds()。then(items => {
  items.foreach(item => {
    console.log( `[$ {item.source}] $ {item.title}($ {item.pubdate})\ n $ {item.link} \ n`);
  });
});

または、さらに良いことに、JSONとしてデータを提供するシンプルなExpressサーバーを作成します。

 NPMインストールExpress

server.jsの作成:

 const express = require( 'express');
const {aggregatefeeds} = require( './ aggregator');

const app = express();
const port = 3000;

app.get( '/feeds'、async(req、res)=> {
  試す {
    constアイテム= aggregatefeeds();
    Res.Json(アイテム);
  } catch(err){
    Res.Status(500).JSON({error:err.message});
  }
});

app.listen(port、()=> {
  console.log( `rssアグリゲーターhttp:// localhost:$ {port}`);で実行されています。
});

実行:

 node server.js

http://localhost:3000/feedsにアクセスして、JSONでの集計フィードをご覧ください。


4。キャッシュで強化(オプション)

すべてのリクエストにフィードを取得することは効率的ではありません。簡単なインメモリキャッシングを追加します:

 cachedfeeds = nullとします。
lastfetch = 0とします。
const cache_ttl = 10 * 60 * 1000; // 10分

async関数getAggregatedFeeds(){
  const now = date.now();
  if(cachedfeeds &&(now -lastfetch)<cache_ttl){
    cachedfeedsを返します。
  }

  cachedfeeds = agegreatefeeds();
  lastfetch = now;
  cachedfeedsを返します。
}

次に、ExpressルートでgetAggregatedFeeds()を使用します。


最終的な考え

これで、作業RSSフィードアグリゲーターがあります。

  • 複数のフィードをプルします
  • コンテンツを解析および正規化します
  • 単純なAPIを介して提供します

ここから、あなたは:

  • フロントエンドを追加します(React、Vue、またはPlain HTML)
  • ユーザーがサビされたフィードをサポートします
  • キーワードまたはソースでフィルタリングします
  • PM2またはvercel、render、awsなどのプラットフォームで展開する

派手ではありませんが、機能的であり、より高度な機能のための素晴らしい出発点です。

基本的に、わずかなコードで、散在するコンテンツを単一のストリームに変えます。そして、それがRSSの全体的なポイントです。

以上がnode.jsを使用してシンプルなRSSフィードアグリゲーターを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ホットトピック

Node V8 エンジンのメモリと GC の詳細な図による説明 Node V8 エンジンのメモリと GC の詳細な図による説明 Mar 29, 2023 pm 06:02 PM

この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

Nodeのメモリ制御に関する記事 Nodeのメモリ制御に関する記事 Apr 26, 2023 pm 05:37 PM

ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

ノードがnpmコマンドを使用できない場合はどうすればよいですか? ノードがnpmコマンドを使用できない場合はどうすればよいですか? Feb 08, 2023 am 10:09 AM

ノードが npm コマンドを使用できない理由は、環境変数が正しく設定されていないためです。解決策は次のとおりです: 1. 「システムのプロパティ」を開きます; 2. 「環境変数」->「システム変数」を見つけて、環境を編集します。変数; 3.nodejs フォルダーの場所を見つけます; 4.「OK」をクリックします。

Nodeのイベントループについて話しましょう Nodeのイベントループについて話しましょう Apr 11, 2023 pm 07:08 PM

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

ノードのバッファーについて詳しく見る ノードのバッファーについて詳しく見る Apr 25, 2023 pm 07:49 PM

当初、JS はブラウザ側でのみ動作していたため、Unicode でエンコードされた文字列の処理は簡単でしたが、バイナリ文字列や非 Unicode エンコード文字列の処理は困難でした。バイナリは、コンピュータのビデオ/オーディオ/プログラム/ネットワーク パッケージの最低レベルのデータ形式です。

Node の File モジュールについて詳しく説明しましょう Node の File モジュールについて詳しく説明しましょう Apr 24, 2023 pm 05:49 PM

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

Node の URL モジュールとクエリ文字列モジュールについて話しましょう Node の URL モジュールとクエリ文字列モジュールについて話しましょう Feb 23, 2023 pm 07:39 PM

URL モジュールとクエリ文字列モジュールは、2 つの非常に重要な URL 処理モジュールです。ノードサーバーを開発するときによく使用されます。

Node における TCP と UDP の簡単な分析 Node における TCP と UDP の簡単な分析 Apr 20, 2023 pm 06:15 PM

Node はネットワーク指向のプラットフォームで、イベント駆動型、ノンブロッキング、シングルスレッドなどの機能があり、優れたスケーラビリティを備えているため非常に軽量で、分散ネットワークでさまざまな役割を果たすのに適しています。

See all articles