Server Actions में सत्यापन और त्रुटि प्रबंधन
Zod से इनपुट का सत्यापन करके, संरचित त्रुटि अवस्थाएँ लौटाकर और useActionState के साथ उन्हें अपने फ़ॉर्म में दिखाकर मजबूत Server Actions बनाएँ।
Server Actions में सत्यापन और त्रुटि प्रबंधन, CoddyKit पर Next.js 15 फुलस्टैक (App Router + Server Actions) का एक निःशुल्क पाठ है। यह 3 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Next.js 15 फुलस्टैक (App Router + Server Actions) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Next.js 15 फुलस्टैक (App Router + Server Actions) पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
सर्वर ऐक्शन को मान्य क्यों करें?
सर्वर ऐक्शन सीधे क्लाइंट से डेटा प्राप्त करते हैं, जिस पर कभी भरोसा नहीं किया जा सकता। मान्यता डेटाबेस तक कुछ पहुँचने से पहले विकृत इनपुट, इंजेक्शन और गलत व्यावसायिक नियमों से सुरक्षा देती है।
FormData पढ़ना
फ़ॉर्म से जुड़े सर्वर ऐक्शन को FormData ऑब्जेक्ट मिलता है। आप फ़ील्ड को नाम से पढ़ते हैं, लेकिन हर मान स्ट्रिंग के रूप में आता है।
'use server';
export async function createPost(formData: FormData) {
const title = formData.get('title');
const views = formData.get('views');
}Zod स्कीमा परिभाषित करना
Zod आपके डेटा का आकार और नियम घोषित करता है। coerce स्ट्रिंग फ़ॉर्म मानों को अपने-आप सही प्रकारों में बदलता है।
import { z } from 'zod';
const PostSchema = z.object({
title: z.string().min(3, 'Title too short'),
views: z.coerce.number().int().min(0)
});सुरक्षित पार्सिंग
वैलिडेशन विफल होने पर अपवाद फेंकने के बजाय परिणाम ऑब्जेक्ट लौटाने के लिए safeParse का उपयोग करें। शाखा तय करने के लिए success की जाँच करें।
const parsed = PostSchema.safeParse({
title: formData.get('title'),
views: formData.get('views')
});
if (!parsed.success) {
// handle errors
}संरचित त्रुटि स्थिति लौटाना
अपवाद फेंकने के बजाय, क्या गलत हुआ इसका विवरण देने वाला ऑब्जेक्ट लौटाएँ। फ़ील्ड-स्तरीय संदेश UI को सही इनपुट के पास त्रुटियाँ दिखाने देते हैं।
if (!parsed.success) {
return {
errors: parsed.error.flatten().fieldErrors,
message: 'Validation failed'
};
}useActionState जोड़ना
क्लाइंट पर useActionState आपके एक्शन द्वारा लौटाए गए मान को ट्रैक करता है। यह आपको नवीनतम state और फ़ॉर्म में पास करने योग्य रैप किया हुआ एक्शन देता है।
'use client';
const [state, formAction] = useActionState(createPost, { errors: {} });फ़ील्ड त्रुटियाँ दिखाना
हर फ़ील्ड के नीचे state.errors से संदेश रेंडर करें, ताकि उपयोगकर्ताओं को ठीक-ठीक पता चले कि क्या सुधारना है।
<input name="title" />
{state.errors?.title && (
<p className="error">{state.errors.title[0]}</p>
)}अनपेक्षित त्रुटियाँ पकड़ना
वैलिडेशन गलत इनपुट को संभालता है, लेकिन डेटाबेस या नेटवर्क कॉल फिर भी विफल हो सकते हैं। उन्हें try/catch में रखें और आंतरिक विवरण उजागर करने के बजाय उपयोगकर्ता-अनुकूल संदेश लौटाएँ।
try {
await prisma.post.create({ data: parsed.data });
} catch (e) {
return { message: 'Database error. Please try again.' };
}सफलता पर फिर से वैलिडेट करना
सफल लेखन के बाद revalidatePath कॉल करें, ताकि कैश किए गए पेज फिर से डेटा प्राप्त करें और नया डेटा तुरंत दिखाई दे।
import { revalidatePath } from 'next/cache';
revalidatePath('/posts');
return { message: 'Post created!' };क्लाइंट पर कभी भरोसा न करें
क्लाइंट-साइड वैलिडेशन उपयोगकर्ता अनुभव को बेहतर बनाता है, लेकिन इसे दरकिनार किया जा सकता है। सर्वर पर हमेशा फिर से वैलिडेट करें। Server Action आपकी वास्तविक सुरक्षा सीमा है।
सर्वोत्तम अभ्यास
मज़बूत एक्शन एक तय पैटर्न का पालन करते हैं:
- Zod safeParse से वैलिडेट करें
- संरचित फ़ील्ड त्रुटियाँ लौटाएँ
- उन्हें useActionState से दिखाएँ
- साइड इफ़ेक्ट को try/catch में रखें
- सफलता पर फिर से वैलिडेट करें
त्वरित जाँच
अपने वैलिडेशन संबंधी ज्ञान की जाँच करें।
पुनरावलोकन
आपने अपने Server Actions को अधिक सुरक्षित बनाया:
- Zod स्कीमा और
safeParseसेFormDataको वैलिडेट किया - संरचित
errorsऔरmessageलौटाए useActionStateसे उन्हें ट्रैक किया और हर फ़ील्ड के लिए रेंडर किया- रनटाइम विफलताओं को पकड़ा और सफलता पर फिर से वैलिडेट किया
अब आपके फ़ॉर्म शालीनता से विफल होते हैं और सुरक्षित रहते हैं।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 22
- पाठ
- 88
अक्सर पूछे जाने वाले प्रश्न
क्या “Server Actions में सत्यापन और त्रुटि प्रबंधन” पाठ निःशुल्क है?
हाँ — Next.js 15 फुलस्टैक (App Router + Server Actions) अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Server Actions में सत्यापन और त्रुटि प्रबंधन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Next.js 15 फुलस्टैक (App Router + Server Actions) पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“Server Actions में सत्यापन और त्रुटि प्रबंधन” में मैं क्या सीखूँगा?
Zod से इनपुट का सत्यापन करके, संरचित त्रुटि अवस्थाएँ लौटाकर और useActionState के साथ उन्हें अपने फ़ॉर्म में दिखाकर मजबूत Server Actions बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Next.js 15 फुलस्टैक (App Router + Server Actions) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Next.js 15 फुलस्टैक (App Router + Server Actions) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Next.js 15 फुलस्टैक (App Router + Server Actions) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 3वाँ पाठ है।
“Server Actions में सत्यापन और त्रुटि प्रबंधन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Next.js 15 फुलस्टैक (App Router + Server Actions) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Next.js 15 फुलस्टैक (App Router + Server Actions) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- आशावादी UI अपडेट
- ऐक्शन से फ़ाइल अपलोड
- Server Actions में सत्यापन और त्रुटि प्रबंधन