आइए नेक्स्टज में रूटिंग के बारे में बात करते हैं। आज हम सबसे ताकतवर चीज मिडलवेयर के बारे में बात करेंगे। नेक्स्टजेएस में मिडलवेयर सर्वर से अनुरोधों को रोकने और अनुरोध प्रवाह (रीडायरेक्ट, यूआरएल पुनर्लेखन) को नियंत्रित करने और प्रमाणीकरण, हेडर, कुकी दृढ़ता जैसी वैश्विक स्तर पर सुविधाओं को बढ़ाने के लिए एक शक्तिशाली और लचीला तरीका प्रदान करता है।
आइए मिडिलवेयर नेक्स्ट.जेएस एप्लिकेशन बनाएं। सबसे पहले, हम src फ़ोल्डर में मिडिलवेयर.जेएस या मिडिलवेयर.टीएस जैसे मिडलवेयर के लिए एक नई फ़ाइल बनाएंगे। नेक्स्ट.जेएस में मिडलवेयर को आपको उस पर अच्छे नियंत्रण की अनुमति देने की आवश्यकता है जहां यह सक्रिय होगा (यानी कस्टम मैचर कॉन्फ़िगरेशन, या isXXX फ़ंक्शंस का उपयोग करना)
एक उदाहरण के रूप में पुनर्निर्देशन का उपयोग करते हुए, आइए एक ऐसे परिदृश्य की कल्पना करें जहां /प्रोफ़ाइल पर नेविगेट करने से उपयोगकर्ता को मुखपृष्ठ पर पुनर्निर्देशित किया जाना चाहिए। कस्टम मैचर कॉन्फ़िगरेशन दृष्टिकोण के साथ, हम आवश्यक प्रकार आयात करके, मिडलवेयर फ़ंक्शन को परिभाषित करके और मैचर कॉन्फ़िगरेशन निर्दिष्ट करके इसे प्राप्त कर सकते हैं:
import { NextResponse } from 'next/server'; import type { NextRequest } from 'next/server'; export function middleware(request: NextRequest) { return NextResponse.redirect(request.url.replace('/profile', '/')); } export const config = { matcher: '/profile', };
इस उदाहरण में, मिडलवेयर फ़ंक्शन जांच करता है कि अनुरोध यूआरएल पथ /प्रोफ़ाइल है या नहीं और उपयोगकर्ता को होमपेज पर रीडायरेक्ट करता है।
सशर्त कथन दृष्टिकोण के लिए, हम कोड को निम्नानुसार संशोधित कर सकते हैं:
import { NextResponse } from 'next/server'; import type { NextRequest } from 'next/server'; export function middleware(request: NextRequest) { if (request.nextUrl.pathname === '/profile') { return NextResponse.redirect('/hello'); } return NextResponse.next(); }
इस मामले में, मिडलवेयर अनुरोध यूआरएल पथ की जांच करता है और यदि पथ /प्रोफ़ाइल है तो उपयोगकर्ता को /हैलो रूट पर रीडायरेक्ट करता है।
नेक्स्ट.जेएस में मिडलवेयर केवल पुनर्निर्देशन को संभालने से कहीं आगे जाता है। यह URL पुनर्लेखन की भी अनुमति देता है, जो लीगेसी URL समर्थन या SEO अनुकूलन के लिए उपयोगी हो सकता है। पिछले उदाहरणों में रीडायरेक्ट को रीराइट में बदलने से, ब्राउज़र में यूआरएल वही रहेगा (/प्रोफ़ाइल), लेकिन प्रतिक्रिया सामग्री /हैलो रूट से सामग्री में बदल जाएगी।
अंत में, आइए मिडलवेयर में कुकीज़ और हेडर के उपयोग का पता लगाएं। हम थीम के लिए उपयोगकर्ता की प्राथमिकताओं को संभालने के लिए अपने मिडलवेयर को संशोधित कर सकते हैं और सभी प्रतिक्रियाओं के लिए एक कस्टम हेडर जोड़ सकते हैं:
import { NextResponse } from 'next/server'; import type { NextRequest } from 'next/server'; export function middleware(request: NextRequest) { const response = NextResponse.next(); // Handle user theme preference const themePreference = request.cookies.get('theme'); if (!themePreference) { response.cookies.set('theme', 'dark'); } // Add a custom header response.headers.set('Custom-Header', 'Custom Value'); return response; }
इस उदाहरण में, हम पहले जांचते हैं कि उपयोगकर्ता के पास कुकी में थीम प्राथमिकता संग्रहीत है या नहीं। यदि नहीं, तो हम कुकी जोड़कर थीम को 'डार्क' पर सेट करते हैं। फिर, हम प्रतिक्रिया में एक कस्टम हेडर जोड़ते हैं, जो अतिरिक्त जानकारी देने या डिबगिंग उद्देश्यों के लिए उपयोगी हो सकता है।
जैसा कि आप देख सकते हैं, नेक्स्ट.जेएस में मिडलवेयर एक शक्तिशाली उपकरण है जो आपको अनुरोध-प्रतिक्रिया चक्र को प्रभावी ढंग से नियंत्रित और इंटरसेप्ट करने, रीडायरेक्ट, यूआरएल रीराइट और हेडर और कुकीज़ के हेरफेर को सक्षम करने की अनुमति देता है। मिडलवेयर में महारत हासिल करके, आप अपने Next.js अनुप्रयोगों में रूटिंग अनुभव को बढ़ा सकते हैं और अधिक मजबूत और अनुकूलन योग्य उपयोगकर्ता अनुभव बना सकते हैं।
"नेक्स्ट.जेएस में मिडलवेयर एक शक्तिशाली सुविधा है जो आपके एप्लिकेशन के भीतर अनुरोधों और प्रतिक्रियाओं के प्रवाह को रोकने और नियंत्रित करने का एक मजबूत तरीका प्रदान करता है।" - Next.js दस्तावेज़ीकरण
संक्षेप में, हमने सीखा है कि नेक्स्ट.जेएस में मिडलवेयर को कैसे परिभाषित किया जाए, दो मुख्य दृष्टिकोण (कस्टम मिलानकर्ता कॉन्फ़िगरेशन और सशर्त विवरण) का पता लगाया जाए, और पुनर्निर्देशन, यूआरएल पुनर्लेखन और कुकीज़ और हेडर के प्रबंधन को संभालने के लिए मिडलवेयर लागू किया जाए। . यह ज्ञान आपको मिडलवेयर द्वारा प्रदान किए जाने वाले लचीलेपन और नियंत्रण का लाभ उठाकर अपने नेक्स्ट.जेएस एप्लिकेशन को अगले स्तर तक ले जाने में मदद करेगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3