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

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

10款趣味橫生的jQuery遊戲插件,讓您的網站更具吸引力,提升用戶粘性!雖然Flash仍然是開發休閒網頁遊戲的最佳軟件,但jQuery也能創造出令人驚喜的效果,雖然無法與純動作Flash遊戲媲美,但在某些情況下,您也能在瀏覽器中獲得意想不到的樂趣。 jQuery井字棋遊戲 遊戲編程的“Hello world”,現在有了jQuery版本。 源碼 jQuery瘋狂填詞遊戲 這是一個填空遊戲,由於不知道單詞的上下文,可能會產生一些古怪的結果。 源碼 jQuery掃雷遊戲

本教程演示瞭如何使用jQuery創建迷人的視差背景效果。 我們將構建一個帶有分層圖像的標題橫幅,從而創造出令人驚嘆的視覺深度。 更新的插件可與JQuery 1.6.4及更高版本一起使用。 下載

Matter.js是一個用JavaScript編寫的2D剛體物理引擎。此庫可以幫助您輕鬆地在瀏覽器中模擬2D物理。它提供了許多功能,例如創建剛體並為其分配質量、面積或密度等物理屬性的能力。您還可以模擬不同類型的碰撞和力,例如重力摩擦力。 Matter.js支持所有主流瀏覽器。此外,它也適用於移動設備,因為它可以檢測觸摸並具有響應能力。所有這些功能都使其值得您投入時間學習如何使用該引擎,因為這樣您就可以輕鬆創建基於物理的2D遊戲或模擬。在本教程中,我將介紹此庫的基礎知識,包括其安裝和用法,並提供一

本文演示瞭如何使用jQuery和ajax自動每5秒自動刷新DIV的內容。 該示例從RSS提要中獲取並顯示了最新的博客文章以及最後的刷新時間戳。 加載圖像是選擇

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版