このガイドでは、GrowthBook 機能フラグを Express.js アプリケーションに追加する方法について説明します。最初から始めることを前提としているため、すでに Express.js アプリケーションをお持ちの場合は、ステップ 2 に進んでください。
まず、Express.js をインストールします
npm install express
次に、単純な hello world ルートを含むindex.js ファイルを作成します
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) // Listen on port 3000 const port = 3000 app.listen(port, () => { console.log(`Example app listening on port ${port}`) })
最後に、次のコマンドでアプリを実行します:
node index.js
http://localhost:3000 にアクセスすると、「Hello World!」が表示されるはずです。応答してください!
GrowthBook はセルフホスト化できますが、簡単にするために、このガイドでは GrowthBook Cloud を使用します。これは、このような単純なプロジェクトには無料です。
まだアカウントをお持ちでない場合は、https://app.growthbook.io にアクセスして新しいアカウントを作成します。
ログインしたら、SDK 接続 を作成し、言語として Node.js を選択します。これにより、一意のクライアント キーが生成されます。次のステップで使用するので、このキーをメモしておいてください。
ファイル .env がまだ存在しない場合は作成し、生成されたキーをそこに追加します。
GROWTHBOOK_API_HOST=https://cdn.growthbook.io GROWTHBOOK_CLIENT_KEY=
それでは、GrowthBook JavaScript SDK をインストールしましょう
npm install @growthbook/growthbook
ここで、index.js ファイルの先頭を変更して、GrowthBookClient インスタンスを作成しましょう:
const express = require('express') const app = express() const { GrowthBookClient } = require("@growthbook/growthbook") // GrowthBookClient instance const client = new GrowthBookClient({ apiHost: process.env.GROWTHBOOK_API_HOST, clientKey: process.env.GROWTHBOOK_CLIENT_KEY }); // Initialize it client.init().then((status) => { console.log("GrowthBook initialized", status); });
リクエストごとにユーザースコープのインスタンスを作成するミドルウェアをindex.jsに追加しましょう。これをルート ハンドラーの上に必ず配置してください:
app.use((req, res, next) => { // Attributes about the current user/request const userContext = { attributes: { // In a real app this would come from a cookie or session // We would also add more attributes like country, etc id: "123", } } // Make this available to all subsequent route handlers req.growthbook = client.createScopedInstance(userContext); next(); });
ノード プロセスを再起動し、コンソールに「GrowthBook が初期化されました」というメッセージが表示され、ステータスが成功であることを確認します。 .env ファイルを使用しているため、Node.js にそれをロードするようにコマンドを変更する必要があります。
node --env-file=.env index.js
GrowthBook アプリケーションに戻って、新しい機能を作成できます。このチュートリアルでは、スペイン語でメッセージを表示するかどうかを決定する単純なオン/オフ機能フラグを作成します。
私たちが選択したキー (スペイン語の挨拶) は、GrowthBook SDK を使用するときに参照するものです。
index.js でルートを編集して、このフラグを使用できるようになりました:
app.get('/', (req, res) => { let message = "Hello World!"; if (req.growthbook.isOn("spanish-greeting")) { message = "Hola Mundo!"; } res.send(message); })
ここで、Node プロセスを再起動してブラウザでページを更新すると、元の「Hello World!」が表示されます。この機能を作成したときに、デフォルトでオフに設定したためです。
これで、機能にルールを追加して、特定のユーザーに対して有効にすることができます。
追加した userContext では、「123」という ID をハードコーディングしました。この ID を使用して、GrowthBook でこのユーザーの機能を有効にするルールを作成できるようになりました。
機能ページで、[ルールの追加] ボタンをクリックし、ルール タイプとして [値の強制] を選択します。次に、属性によるターゲティングを追加し、ルールを保存します。次のようになります:
ルールは GrowthBook のドラフト状態から始まります。公開するには、下書きを公開する必要があります。
公開後、ノード プロセスをもう一度再起動し、ページを更新します。スペイン語のメッセージが表示されるはずです。クエ ブエノ!
userContext の ID を 456 などの別の ID に変更してみて、Node を再起動すると、応答が英語に戻ります。
このチュートリアルでは、Express アプリで単純な機能フラグを使用し、個々のユーザーをターゲットにする方法を学びました。しかし、これは GrowthBook でできることのほんの表面にすぎません。
次のステップは次のとおりです:
ストリーミング更新、永続的キャッシュなど、GrowthBook SDK で利用可能なすべてのオプションの詳細については、Node.js ドキュメント全体をご覧ください。
以上がExpress.js と GrowthBook を使用した機能フラグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。