برنامه نویسی

ساختن یک سیستم پرچم ویژگی در node.js با redis و وسط نرم افزار

پرچم های ویژگی (همچنین به عنوان ضامن ویژگی شناخته می شود) به شما امکان می دهد بدون استفاده از کد جدید ، عملکرد را فعال یا غیرفعال کنید. آنها برای آزمایش A/B ، مرحله مرحله ای و کنترل عملیاتی در تولید بسیار ارزشمند هستند. در این مقاله ، شما می آموزید که چگونه یک سیستم پرچم ویژگی را در Node.js با استفاده از Redis و Express Middleware پیاده سازی کنید.

چرا از پرچم های ویژگی استفاده می کنیم؟

پرچم های ویژگی به شما کمک می کنند:

  • ویژگی های خطرناک را با خیال راحت مستقر کنید
  • آزمایشات اجرا (آزمایش A/B)
  • ویژگی هایی را برای کاربران خاص فعال کنید
  • در دسترس بودن ویژگی بدون استفاده مجدد

مرحله 1: تنظیم پروژه

npm init -y
npm install express redis

مرحله 2: تنظیم مشتری Redis

// redisClient.js
const redis = require('redis');
const client = redis.createClient();

client.on('error', (err) => console.error('Redis Error:', err));
client.connect();

module.exports = client;

مرحله 3: میانی نرم افزار برای پرچم های ویژگی

// featureFlagMiddleware.js
const client = require('./redisClient');

const featureFlag = (flagName) => {
  return async (req, res, next) => {
    try {
      const enabled = await client.get(`feature:${flagName}`);
      if (enabled === 'true') {
        return next();
      } else {
        return res.status(403).json({ message: 'Feature disabled' });
      }
    } catch (err) {
      console.error(err);
      return res.status(500).json({ message: 'Feature check failed' });
    }
  };
};

module.exports = featureFlag;

مرحله 4: استفاده در مسیرها

// server.js
const express = require('express');
const featureFlag = require('./featureFlagMiddleware');
const client = require('./redisClient');

const app = express();

app.get("https://dev.to/", (req, res) => {
  res.send('Main API');
});

app.get('/beta-feature', featureFlag('beta-feature'), (req, res) => {
  res.send('Beta feature is active!');
});

app.listen(3000, () => console.log('Server running on http://localhost:3000'));

مرحله 5: پرچم های ویژگی را در redis تغییر دهید

یک ویژگی را در Redis CLI یا با هر ابزار Redis GUI فعال کنید:

SET feature:beta-feature true

آن را غیرفعال کنید:

SET feature:beta-feature false

پیشرفت

  • ویژگی هایی را برای شناسه یا نقشهای خاص کاربری فعال کنید
  • انواع پرچم را برای آزمایش A/B پیاده سازی کنید
  • داشبورد برای پرچم ها ایجاد کنید
  • برای قوانین پیچیده تر از ساختارهای JSON در REDIS استفاده کنید

پایان

یک سیستم پرچم ویژگی ، کنترل ریز و درشت بر رفتار برنامه خود در تولید را به شما می دهد. با استفاده از Redis به عنوان فروشگاه پرچم خود و میان افزار سبک در Node.js ، می توانید این سیستم را برای پاسخگویی به نیازهای تیم های بزرگ و استقرار پیچیده مقیاس کنید.

اگر این موضوع را مفید پیدا کردید ، از من حمایت کنید: buymeacoffee.com/hexshift

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا