<पी> एज-फ़्लैग आपको अपने सर्वर रहित अनुप्रयोगों के लिए फ़ीचर फ़्लैग को आसानी से प्रबंधित करने की अनुमति देता है। इसे शक्तिशाली जियोलोकेशन नियमों के साथ अपस्टैश रेडिस के शीर्ष पर बनाया गया है। आज मैं आपको एक बहुत ही सरल उदाहरण दिखाऊंगा कि आप उपयोगकर्ता के स्थान के आधार पर अनुरोधों को फिर से लिखने के लिए Next.js मिडलवेयर में एज-फ्लैग का उपयोग कैसे कर सकते हैं। झंडा बनाएं
<पी> हमारे उदाहरण ऐप में हम केवल ईयू में अपने उपयोगकर्ताओं के लिए सामग्री उपलब्ध कराना चाहते हैं, इसलिए हम एक नया रेडिस डेटाबेस बनाएंगे और फिर एज-फ्लैग पेज पर जाएंगे। बनाए गए डेटाबेस और production का चयन करें। पर्यावरण. <पी> फिर हम eu-countries नामक एक नया ध्वज बना सकते हैं और EU के सभी देशों को जोड़ें। <पी>
पैकेज सेटअप और इंस्टॉल करें
- यदि आपके पास कोई मौजूदा Next.js ऐप नहीं है, तो आप
npx create-next-app के साथ एक ऐप बना सकते हैं और @upstash/edge-flags इंस्टॉल करें और @upstash/redis पैकेज:
$ npm install @upstash/edge-flags @upstash/redis
- एक नई फ़ाइल बनाएं
middleware.ts अपने प्रोजेक्ट के मूल में और निम्नलिखित कोड जोड़ें:
/middleware.tsimport { 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: "/",
};
- एक बहुत ही परिष्कृत
/blocked बनाएं पेज
ऐप/ब्लॉक/पेज.tsxexport default function Page() {
return <div> You are not in the EU</div>;
}
<पी> अब जो कुछ बचा है वह प्रोजेक्ट को वर्सेल में तैनात करना है: $ npx vercel
<पी> वर्सेल में पर्यावरण चर को अपस्टैश कंसोल से कॉपी करके या अपस्टैश एकीकरण का उपयोग करके जोड़ना सुनिश्चित करें। <पी>
इसका परीक्षण करें
विकास में जियोलोकेशन
<पी> स्थानीय स्तर पर विकास करते समय जियोलोकेशन डेटा उपलब्ध नहीं है। इसका परीक्षण करने के लिए आपको वास्तव में ऐप को वर्सेल में तैनात करना होगा। <पी> अब आप अपने ऐप के इंडेक्स पेज पर जाकर इसका परीक्षण कर सकते हैं। यदि आप ईयू में हैं तो आपको सामग्री देखनी चाहिए, अन्यथा आपको /blocked पर पुनः निर्देशित कर दिया जाएगा। पेज. लिंक
- एज-फ्लैग
- उदाहरण कोड
- उदाहरण ऐप