首頁 > web前端 > js教程 > Express.js 和 GrowthBook 的功能標誌

Express.js 和 GrowthBook 的功能標誌

Mary-Kate Olsen
發布: 2024-12-12 15:33:12
原創
764 人瀏覽過

本指南逐步介紹如何在 Express.js 應用程式中新增 GrowthBook 功能標誌。它假設您從頭開始,因此如果您已經有 Express.js 應用程序,則可以跳到步驟 2。

1. 建立 Express.js 應用程式

首先,安裝 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!」回覆!

2. 建立一個GrowthBook帳戶

GrowthBook 可以自架,但為了簡單起見,我們將在本指南中使用 GrowthBook Cloud,對於像這樣的簡單專案來說,它是免費的。

如果您還沒有帳戶,請前往 https://app.growthbook.io 並建立新帳戶。

登入後,建立 SDK 連線 並選擇 Node.js 作為語言。這將為您產生一個唯一的客戶端金鑰。記下此密鑰,因為我們將在下一步中使用它。

3. 將 GrowthBook JavaScript SDK 整合到 Express.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();
});
登入後複製

讓我們重新啟動 Node 進程,並確保您在控制台中看到「GrowthBook 已初始化」訊息並且狀態為成功。由於我們使用的是 .env 文件,因此我們需要修改命令來告訴 Node.js 載入它。

node --env-file=.env index.js
登入後複製

4. 在GrowthBook中建立一個特徵

回到GrowthBook應用程序,我們可以建立一個新功能。在本教程中,我們將製作一個簡單的開/關功能標誌,用於確定是否以西班牙語顯示訊息。

Feature Flags with Express.js and 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!」因為當我們建立該功能時,我們預設將其設為關閉。

5. 針對特定用戶

現在我們可以為該功能添加規則,以便為特定用戶啟用它。

在我們新增的 userContext 中,我們硬編碼了一個 id「123」。我們現在可以使用此 id 在 GrowthBook 中建立規則來為該使用者啟用該功能。

在功能頁面上,按一下「新增規則」按鈕並選擇「強制值」作為規則類型。然後按屬性新增定位並儲存規則。它應該看起來像這樣:

Feature Flags with Express.js and GrowthBook

規則在 GrowthBook 中以草稿狀態開始。您需要發布草稿才能使其生效。

發布後,再次重啟Node進程並重新整理頁面。您現在應該看到西班牙語的消息。 ¡ Qué bueno!

嘗試將 userContext 中的 id 變更為其他值,例如 456,重新啟動 Node,回應現在將切換回英文。

結論和後續步驟

在本教學中,您學習如何在 Express 應用程式中使用簡單的功能標誌並定位個人使用者。但這僅僅觸及了 GrowthBook 功能的皮毛。

以下是您可以採取的後續步驟:

  • 使用更進階的定位
  • 運行 A/B 測試

查看完整的 Node.js 文檔,以了解有關 GrowthBook SDK 中所有可用選項的更多信息,包括串流更新、持久快取等。

以上是Express.js 和 GrowthBook 的功能標誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板