本指南逐步介紹如何在 Express.js 應用程式中新增 GrowthBook 功能標誌。它假設您從頭開始,因此如果您已經有 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(); });
讓我們重新啟動 Node 進程,並確保您在控制台中看到「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 中,我們硬編碼了一個 id「123」。我們現在可以使用此 id 在 GrowthBook 中建立規則來為該使用者啟用該功能。
在功能頁面上,按一下「新增規則」按鈕並選擇「強制值」作為規則類型。然後按屬性新增定位並儲存規則。它應該看起來像這樣:
規則在 GrowthBook 中以草稿狀態開始。您需要發布草稿才能使其生效。
發布後,再次重啟Node進程並重新整理頁面。您現在應該看到西班牙語的消息。 ¡ Qué bueno!
嘗試將 userContext 中的 id 變更為其他值,例如 456,重新啟動 Node,回應現在將切換回英文。
在本教學中,您學習如何在 Express 應用程式中使用簡單的功能標誌並定位個人使用者。但這僅僅觸及了 GrowthBook 功能的皮毛。
以下是您可以採取的後續步驟:
查看完整的 Node.js 文檔,以了解有關 GrowthBook SDK 中所有可用選項的更多信息,包括串流更新、持久快取等。
以上是Express.js 和 GrowthBook 的功能標誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!