Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

भू-आधारित सामग्री नियंत्रण के लिए Next.js मिडलवेयर में एज फ़्लैग लागू करना

<पी> एज-फ़्लैग आपको अपने सर्वर रहित अनुप्रयोगों के लिए फ़ीचर फ़्लैग को आसानी से प्रबंधित करने की अनुमति देता है। इसे शक्तिशाली जियोलोकेशन नियमों के साथ अपस्टैश रेडिस के शीर्ष पर बनाया गया है। आज मैं आपको एक बहुत ही सरल उदाहरण दिखाऊंगा कि आप उपयोगकर्ता के स्थान के आधार पर अनुरोधों को फिर से लिखने के लिए Next.js मिडलवेयर में एज-फ्लैग का उपयोग कैसे कर सकते हैं।

झंडा बनाएं

<पी> हमारे उदाहरण ऐप में हम केवल ईयू में अपने उपयोगकर्ताओं के लिए सामग्री उपलब्ध कराना चाहते हैं, इसलिए हम एक नया रेडिस डेटाबेस बनाएंगे और फिर एज-फ्लैग पेज पर जाएंगे। बनाए गए डेटाबेस और production का चयन करें। पर्यावरण.

<पी> फिर हम eu-countries नामक एक नया ध्वज बना सकते हैं और EU के सभी देशों को जोड़ें।

<पी> भू-आधारित सामग्री नियंत्रण के लिए Next.js मिडलवेयर में एज फ़्लैग लागू करना

पैकेज सेटअप और इंस्टॉल करें

  1. यदि आपके पास कोई मौजूदा Next.js ऐप नहीं है, तो आप npx create-next-app के साथ एक ऐप बना सकते हैं और @upstash/edge-flags इंस्टॉल करें और @upstash/redis पैकेज:
$ npm install @upstash/edge-flags @upstash/redis
  1. एक नई फ़ाइल बनाएं middleware.ts अपने प्रोजेक्ट के मूल में और निम्नलिखित कोड जोड़ें:
/middleware.ts
import { NextRequest, NextResponse } from "next/server";
 
import { Client as EdgeFlags } from "@upstash/edge-flags";
import { Redis } from "@upstash/redis";
 
const edgeFlags = new EdgeFlags({ redis: Redis.fromEnv() });
export default async function middleware(
 req: NextRequest,
): Promise<NextResponse> {
 const enabled = await edgeFlags
 .getFlag("eu-countries", req.geo ?? {})
 .catch((err) => {
 console.error(err);
 return false;
 });
 
 if (!enabled) {
 const url = new URL(req.url);
 url.pathname = "/blocked";
 return NextResponse.rewrite(url);
 }
 
 return NextResponse.next();
}
 
export const config = {
 matcher: "/",
};
  1. एक बहुत ही परिष्कृत /blocked बनाएं पेज
ऐप/ब्लॉक/पेज.tsx
export default function Page() {
 return <div> You are not in the EU</div>;
}
<पी> अब जो कुछ बचा है वह प्रोजेक्ट को वर्सेल में तैनात करना है:

$ npx vercel
<पी> वर्सेल में पर्यावरण चर को अपस्टैश कंसोल से कॉपी करके या अपस्टैश एकीकरण का उपयोग करके जोड़ना सुनिश्चित करें।

<पी> भू-आधारित सामग्री नियंत्रण के लिए Next.js मिडलवेयर में एज फ़्लैग लागू करना

इसका परीक्षण करें

विकास में जियोलोकेशन
<पी> स्थानीय स्तर पर विकास करते समय जियोलोकेशन डेटा उपलब्ध नहीं है। इसका परीक्षण करने के लिए आपको वास्तव में ऐप को वर्सेल में तैनात करना होगा।

<पी> अब आप अपने ऐप के इंडेक्स पेज पर जाकर इसका परीक्षण कर सकते हैं। यदि आप ईयू में हैं तो आपको सामग्री देखनी चाहिए, अन्यथा आपको /blocked पर पुनः निर्देशित कर दिया जाएगा। पेज.

लिंक

  • एज-फ्लैग
  • उदाहरण कोड
  • उदाहरण ऐप

  1. CSS का उपयोग करके टेक्स्ट डेकोरेशन CSS का उपयोग करके टेक्स्ट डेकोरेशन

    CSS टेक्स्ट-डेकोरेशन प्रॉपर्टी का उपयोग चयनित एलिमेंट के टेक्स्ट में डेकोरेशन लागू करने के लिए किया जाता है। हम मान के रूप में लाइन-थ्रू, ओवरलाइन, अंडरलाइन आदि जोड़ सकते हैं। यह टेक्स्ट-डेकोरेशन-लाइन, टेक्स्ट-डेकोरेशन-कलर और टेक्स्ट-डेकोरेशन-स्टाइल के लिए शॉर्टहैंड है। सिंटैक्स टेक्स्ट-डेकोरेशन प्र

  1. MySQL वर्कबेंच का उपयोग करके MySQL डेटाबेस बैकअप कैसे लें? MySQL वर्कबेंच का उपयोग करके MySQL डेटाबेस बैकअप कैसे लें?

    MySQL का उपयोग करके MySQL डेटाबेस बैकअप बनाने के लिए, पहले हमें MySQL वर्कबेंच को स्थापित करना होगा। MySQL कार्यक्षेत्र स्थापित करने के लिए नीचे दिए गए लिंक का अनुसरण करें। https://dev.mysql.com/downloads/windows/installer/8.0.html सफलतापूर्वक स्थापित करने के बाद, हमें MySQL वर्कबेंच खोलने की आवश्य

  1. जावास्क्रिप्ट में ES6 संपत्ति आशुलिपि जावास्क्रिप्ट में ES6 संपत्ति आशुलिपि

    ES6 में, यदि ऑब्जेक्ट कुंजी नाम और वेरिएबल्स को गुण मान के रूप में पास किया गया है, तो उनका नाम समान है, तो हम केवल मान नाम को छोड़ सकते हैं और केवल कुंजी नाम निर्दिष्ट कर सकते हैं। जावास्क्रिप्ट में प्रॉपर्टी शॉर्टहैंड के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताह