[{"data":1,"prerenderedAt":276},["ShallowReactive",2],{"term-v\u002Fvalidation":3,"related-v\u002Fvalidation":260},{"id":4,"title":5,"acronym":6,"body":7,"category":242,"description":243,"difficulty":244,"extension":245,"letter":246,"meta":247,"navigation":195,"path":248,"related":249,"seo":254,"sitemap":255,"stem":258,"subcategory":6,"__hash__":259},"terms\u002Fterms\u002Fv\u002Fvalidation.md","Validation",null,{"type":8,"value":9,"toc":236},"minimark",[10,15,19,23,26,30,225,229,232],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Validation is your backend's bouncer. Before any data gets into the database, the bouncer checks it: 'Is this email actually an email? Is this password long enough? Is this required field actually filled in?' If anything fails, the bouncer blocks it with an error.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Validation is the process of verifying that input data meets defined rules and constraints before processing or storing it. Backend validation is essential for data integrity and security, even when frontend validation exists, since API requests can bypass the frontend.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const schema = z.object({\n  email: z.string().email(),\n  age:   z.number().min(18),\n  name:  z.string().min(2).max(50),\n});\n\nconst result = schema.safeParse(req.body);\n","javascript","",[38,39,40,73,103,137,179,190,197],"code",{"__ignoreMap":36},[41,42,45,49,53,57,60,63,67,70],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"spNyl","const",[41,50,52],{"class":51},"sTEyZ"," schema ",[41,54,56],{"class":55},"sMK4o","=",[41,58,59],{"class":51}," z",[41,61,62],{"class":55},".",[41,64,66],{"class":65},"s2Zo4","object",[41,68,69],{"class":51},"(",[41,71,72],{"class":55},"{\n",[41,74,76,80,83,85,87,90,93,95,98,100],{"class":43,"line":75},2,[41,77,79],{"class":78},"swJcz","  email",[41,81,82],{"class":55},":",[41,84,59],{"class":51},[41,86,62],{"class":55},[41,88,89],{"class":65},"string",[41,91,92],{"class":51},"()",[41,94,62],{"class":55},[41,96,97],{"class":65},"email",[41,99,92],{"class":51},[41,101,102],{"class":55},",\n",[41,104,106,109,111,114,116,119,121,123,126,128,132,135],{"class":43,"line":105},3,[41,107,108],{"class":78},"  age",[41,110,82],{"class":55},[41,112,113],{"class":51},"   z",[41,115,62],{"class":55},[41,117,118],{"class":65},"number",[41,120,92],{"class":51},[41,122,62],{"class":55},[41,124,125],{"class":65},"min",[41,127,69],{"class":51},[41,129,131],{"class":130},"sbssI","18",[41,133,134],{"class":51},")",[41,136,102],{"class":55},[41,138,140,143,145,148,150,152,154,156,158,160,163,165,167,170,172,175,177],{"class":43,"line":139},4,[41,141,142],{"class":78},"  name",[41,144,82],{"class":55},[41,146,147],{"class":51},"  z",[41,149,62],{"class":55},[41,151,89],{"class":65},[41,153,92],{"class":51},[41,155,62],{"class":55},[41,157,125],{"class":65},[41,159,69],{"class":51},[41,161,162],{"class":130},"2",[41,164,134],{"class":51},[41,166,62],{"class":55},[41,168,169],{"class":65},"max",[41,171,69],{"class":51},[41,173,174],{"class":130},"50",[41,176,134],{"class":51},[41,178,102],{"class":55},[41,180,182,185,187],{"class":43,"line":181},5,[41,183,184],{"class":55},"}",[41,186,134],{"class":51},[41,188,189],{"class":55},";\n",[41,191,193],{"class":43,"line":192},6,[41,194,196],{"emptyLinePlaceholder":195},true,"\n",[41,198,200,202,205,207,210,212,215,218,220,223],{"class":43,"line":199},7,[41,201,48],{"class":47},[41,203,204],{"class":51}," result ",[41,206,56],{"class":55},[41,208,209],{"class":51}," schema",[41,211,62],{"class":55},[41,213,214],{"class":65},"safeParse",[41,216,217],{"class":51},"(req",[41,219,62],{"class":55},[41,221,222],{"class":51},"body)",[41,224,189],{"class":55},[11,226,228],{"id":227},"when-youll-hear-this","When You'll Hear This",[16,230,231],{},"\"Add server-side validation for the form fields.\" \u002F \"Validation failed — the email format is wrong.\"",[233,234,235],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":75,"depth":75,"links":237},[238,239,240,241],{"id":13,"depth":75,"text":14},{"id":21,"depth":75,"text":22},{"id":28,"depth":75,"text":29},{"id":227,"depth":75,"text":228},"backend","Validation is your backend's bouncer. Before any data gets into the database, the bouncer checks it: 'Is this email actually an email?","beginner","md","v",{},"\u002Fterms\u002Fv\u002Fvalidation",[250,251,252,253],"Schema","Middleware","Controller","Status Code",{"title":5,"description":243},{"changefreq":256,"priority":257},"weekly",0.7,"terms\u002Fv\u002Fvalidation","FCfcpo5UwWexQ2i2QJFp9E-A9TH9qEj-g7yHwH7GKuk",[261,265,268,272],{"title":252,"path":262,"acronym":6,"category":242,"difficulty":263,"description":264},"\u002Fterms\u002Fc\u002Fcontroller","intermediate","A controller is the manager who actually handles your request after it passes through security.",{"title":251,"path":266,"acronym":6,"category":242,"difficulty":263,"description":267},"\u002Fterms\u002Fm\u002Fmiddleware","Middleware is like a security checkpoint at an airport.",{"title":250,"path":269,"acronym":6,"category":270,"difficulty":244,"description":271},"\u002Fterms\u002Fs\u002Fschema","database","A database schema is the blueprint of your database — which tables exist, what columns they have, what types they are, and how they relate to each other.",{"title":253,"path":273,"acronym":6,"category":274,"difficulty":244,"description":275},"\u002Fterms\u002Fs\u002Fstatus-code","networking","An HTTP status code is the server's one-line verdict on your request. 200 means 'perfect, here's what you asked for.' 404 means 'can't find it.",1776518321616]