ข้ามไปยังเนื้อหา

เริ่มต้นอย่างรวดเร็วบน Node.js

ในอีกไม่กี่นาที บริการ Node ของคุณจะประเมิน feature flag ในโปรเซส — ไม่มีการวิ่งข้ามเครือข่ายต่อการตรวจสอบ ไม่มีเวลาหน่วงในเส้นทางคำขอของคุณ การ poll หนึ่งครั้งรับใช้ทุกคำขอที่โปรเซสของคุณจัดการ

ไม่มี runtime dependency บล็อก dependencies ของแพ็กเกจไม่มีอยู่เลย และจะเป็นเช่นนั้นต่อไป

SDK อยู่ในรีโพซิทอรีสาธารณะบน GitHub — ติดตั้งจากตรงนั้นได้เลย โดยปักหมุดไว้ที่รีลีส

Terminal window
npm install github:FortressFlag/FortressFlag_SDK_node#v1.0.0

ถ้าไม่ใส่ #v1.0.0 คุณจะตามสาขา development แทน — สะดวกสำหรับลองแก้ไข แต่ไม่ใช่สิ่งที่คุณต้องการใน production

แพ็กเกจเป็น ESM เท่านั้น บน Node 22 ขึ้นไป โค้ด CommonJS โหลดมันได้ด้วย require("@fortressflag/sdk-node") ธรรมดาเช่นกัน

SDK นี้ใช้ คีย์เซิร์ฟเวอร์ (ffs_…) และมันตรงข้ามกับคีย์ไคลเอนต์ที่ SDK มือถือและเว็บฝังไป มันดาวน์โหลด ruleset ทั้งชุดของคุณได้ รวมกฎการเจาะกลุ่ม ปฏิบัติกับมันเหมือนรหัสผ่านฐานข้อมูลทุกประการ — ตัวแปรสภาพแวดล้อมหรือ secret manager ไม่ใช่โค้ด ไม่ใช่รีโพซิทอรี ไม่ใช่ log เด็ดขาด คีย์สองคลาส เทียบกันข้าง ๆ

import { create } from "@fortressflag/sdk-node";
let client;
try {
client = create({ key: process.env.FF_SERVER_KEY });
} catch (error) {
// ที่เดียวที่ SDK throw คือคีย์ที่ผิดรูป ก่อนที่จะมีอะไรให้บริการ
console.error(error);
process.exit(1);
}
await client.start(AbortSignal.timeout(15_000)); // resolve เมื่อ ruleset ชุดแรกมาถึง (หรือถึงกำหนดเวลา)
// ... บริการของคุณทำงาน การตรวจสอบ flag ตอนนี้คือการเรียกฟังก์ชันในหน่วยความจำ

start ไม่มีวัน reject — ถ้าการดึงครั้งแรกมาไม่ทันเวลา client จะพยายามต่อในเบื้องหลัง และผู้เรียกของคุณได้ค่า fallback ไปพลาง และตัว poll ไม่มีวันรั้งโปรเซสของคุณให้ทำงานต่อ เมื่อโค้ดของคุณจบ Node ก็ออกตามปกติ

const enabled = client.bool(
"new-checkout",
{
key: "user-42", // คีย์บริบทที่คงที่ของคุณ จะเป็น user id หรือ session id ก็แล้วแต่คุณ
tags: { cohort: "beta" },
},
false, // ค่า fallback ถ้าไม่รู้จัก flag หรือไม่เคยดึงอะไรมาเลย
);

client.string และ client.number ทำงานแบบเดียวกัน key ของบริบทคือสิ่งที่ rollout ตามเปอร์เซ็นต์ใช้จัดกลุ่ม — ส่งตัวระบุเดิมอย่างสม่ำเสมอ แล้วผู้ใช้แต่ละคนจะได้กลุ่มที่คงที่ มันคือข้อมูลของคุณ SDK ไม่มีวันตรวจสอบ เก็บ หรือ log มัน

แค่นั้น — บริการของคุณกำลังประเมิน flag ในเครื่องแล้ว การเปลี่ยนแปลงในแดชบอร์ดไปถึงทุกโปรเซสภายในราวหนึ่งนาที

bool string และ number ตอบเสมอและไม่มีวัน throw — ปัญหาเรื่อง flag ต้องไม่ทำให้บริการของคุณล่มเด็ดขาด โปรเซสที่รีสตาร์ตให้บริการค่า fallback ณ จุดเรียกของคุณจนกว่าการดึงครั้งแรกจะมาถึง (หรือตั้ง cachePath ในคอนฟิกเพื่อบันทึก ruleset ล่าสุดลงไฟล์ที่คุณเลือก แล้วการรีสตาร์ตจะกลับมาจากมันทันที) แม้แต่คีย์ที่ถูกเพิกถอนก็ไม่ทำให้อะไรพัง SDK ประเมินต่อด้วย ruleset ล่าสุดที่มันดาวน์โหลดมา จนกว่าคุณจะให้คีย์ใหม่