ホームページ  >  記事  >  ウェブフロントエンド  >  Express.js アプリをスーパーチャージして超高速パフォーマンスを実現するトップ ips

Express.js アプリをスーパーチャージして超高速パフォーマンスを実現するトップ ips

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-25 09:00:14127ブラウズ

Top ips to Supercharge Your Express.js App for Lightning-Fast Performance

Express.js は、Node.js アプリケーションを構築するための最も人気のあるフレームワークの 1 つです。軽量であるため高速ですが、アプリが成長するにつれてパフォーマンスのボトルネックが発生する可能性があります。このブログでは、Express.js アプリの速度とスケーラビリティを最適化するための 5 つの実践的なヒントを紹介します。

1. ミドルウェアの使用を最適化する

ミドルウェアは Express.js アプリのバックボーンですが、不要なミドルウェアや実装が不十分なミドルウェアは動作を遅くする可能性があります。

必要なミドルウェアのみをロードします: 必要のないルートにはグローバル ミドルウェアを避けます。
例: JSON ペイロードを期待するルートにのみ body-parser を適用します。

const express = require('express');
const app = express();
const bodyParser = require('body-parser');

// Use body-parser only for specific routes
app.post('/api/data', bodyParser.json(), (req, res) => {
  res.send('Data received');
});

2. キャッシュを活用する

キャッシュにより、データベース クエリや API 呼び出しを繰り返す必要性が軽減されます。 Redis や HTTP キャッシュ ヘッダーなどのツールを使用すると、応答時間を大幅に短縮できます。

Redis を使用した例:

const redis = require('redis');
const client = redis.createClient();
const app = require('express')();

app.get('/api/resource', (req, res) => {
  const cacheKey = 'resource';
  client.get(cacheKey, (err, cachedData) => {
    if (cachedData) {
      res.send(JSON.parse(cachedData));
    } else {
      const data = fetchDataFromDatabase(); // Simulated DB call
      client.setex(cacheKey, 3600, JSON.stringify(data)); // Cache for 1 hour
      res.send(data);
    }
  });
});

HTTP キャッシュ:

app.use((req, res, next) => {
  res.set('Cache-Control', 'public, max-age=3600'); // Cache for 1 hour
  next();
});

3. 圧縮を使用する

ペイロードが大きいと、応答時間が遅くなる可能性があります。 Gzip 圧縮を有効にすると、ペイロード サイズが削減され、速度が向上します。

const compression = require('compression');
const express = require('express');
const app = express();

app.use(compression()); // Compress all routes

この簡単な追加により、応答サイズを最大 70% 削減できます!

4. データベースクエリの最適化

多くの場合、データベース クエリの遅さがアプリのパフォーマンス低下の主な原因となります。

ヒント:

  • データベース内の頻繁にクエリされるフィールドのインデックスを作成します。
  • 大規模なデータセットにはページネーションまたは制限を使用します。
  • 結合またはバッチフェッチを使用して、N 1 クエリの問題を回避します。 マングースの例:
const User = require('./models/User');

// Instead of fetching all users
app.get('/users', async (req, res) => {
  const users = await User.find().limit(20).skip(0); // Use pagination
  res.send(users);
});

5. HTTP/2 を有効にして CDN を使用する

HTTP/2 では多重化とヘッダー圧縮が可能で、静的アセットのレイテンシが短縮されます。これを CDN と組み合わせると、静的アセットをユーザーの近くにキャッシュすることで配信がさらに高速化されます。

Express での HTTP/2 のセットアップ:

const http2 = require('http2');
const fs = require('fs');
const express = require('express');

const app = express();
const options = {
  key: fs.readFileSync('./ssl/key.pem'),
  cert: fs.readFileSync('./ssl/cert.pem'),
};

http2.createSecureServer(options, app).listen(8443, () => {
  console.log('HTTP/2 server running on port 8443');
});

ミドルウェアの管理、キャッシュ、応答の圧縮、データベース クエリの最適化を効率的に行うことで、パフォーマンスを大幅に向上させることができます。これらのヒントを実装して、アプリが確実に高速になるようにしてください!

このブログが役に立ったと思われた場合は、❤️ アイコンをクリックしてフォローして、JavaScript のヒントとコツをさらにご覧ください。

以上がExpress.js アプリをスーパーチャージして超高速パフォーマンスを実現するトップ ipsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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