[{"data":1,"prerenderedAt":278},["ShallowReactive",2],{"term-c\u002Fcontroller":3,"related-c\u002Fcontroller":258},{"id":4,"title":5,"acronym":6,"body":7,"category":238,"description":239,"difficulty":240,"extension":241,"letter":242,"meta":243,"navigation":244,"path":245,"related":246,"seo":252,"sitemap":253,"stem":256,"subcategory":6,"__hash__":257},"terms\u002Fterms\u002Fc\u002Fcontroller.md","Controller",null,{"type":8,"value":9,"toc":232},"minimark",[10,15,19,23,26,30,221,225,228],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"A controller is the manager who actually handles your request after it passes through security. It figures out what data you need, asks the model to fetch it, and sends back the response. It's the brain that coordinates everything.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"A controller is a function or class that handles the business logic for a specific route or group of routes. It processes the incoming request, interacts with models or services to get\u002Fmanipulate data, and returns the appropriate response.",[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 getUserById = async (req, res) => {\n  const user = await User.findById(req.params.id);\n  if (!user) return res.status(404).json({ error: 'Not found' });\n  res.json(user);\n};\n","javascript","",[38,39,40,82,129,197,215],"code",{"__ignoreMap":36},[41,42,45,49,53,57,60,63,67,70,73,76,79],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"spNyl","const",[41,50,52],{"class":51},"sTEyZ"," getUserById ",[41,54,56],{"class":55},"sMK4o","=",[41,58,59],{"class":47}," async",[41,61,62],{"class":55}," (",[41,64,66],{"class":65},"sHdIc","req",[41,68,69],{"class":55},",",[41,71,72],{"class":65}," res",[41,74,75],{"class":55},")",[41,77,78],{"class":47}," =>",[41,80,81],{"class":55}," {\n",[41,83,85,88,91,94,98,101,104,108,112,114,116,119,121,124,126],{"class":43,"line":84},2,[41,86,87],{"class":47},"  const",[41,89,90],{"class":51}," user",[41,92,93],{"class":55}," =",[41,95,97],{"class":96},"s7zQu"," await",[41,99,100],{"class":51}," User",[41,102,103],{"class":55},".",[41,105,107],{"class":106},"s2Zo4","findById",[41,109,111],{"class":110},"swJcz","(",[41,113,66],{"class":51},[41,115,103],{"class":55},[41,117,118],{"class":51},"params",[41,120,103],{"class":55},[41,122,123],{"class":51},"id",[41,125,75],{"class":110},[41,127,128],{"class":55},";\n",[41,130,132,135,137,140,143,146,149,151,153,156,158,162,164,166,169,171,174,177,180,183,187,190,193,195],{"class":43,"line":131},3,[41,133,134],{"class":96},"  if",[41,136,62],{"class":110},[41,138,139],{"class":55},"!",[41,141,142],{"class":51},"user",[41,144,145],{"class":110},") ",[41,147,148],{"class":96},"return",[41,150,72],{"class":51},[41,152,103],{"class":55},[41,154,155],{"class":106},"status",[41,157,111],{"class":110},[41,159,161],{"class":160},"sbssI","404",[41,163,75],{"class":110},[41,165,103],{"class":55},[41,167,168],{"class":106},"json",[41,170,111],{"class":110},[41,172,173],{"class":55},"{",[41,175,176],{"class":110}," error",[41,178,179],{"class":55},":",[41,181,182],{"class":55}," '",[41,184,186],{"class":185},"sfazB","Not found",[41,188,189],{"class":55},"'",[41,191,192],{"class":55}," }",[41,194,75],{"class":110},[41,196,128],{"class":55},[41,198,200,203,205,207,209,211,213],{"class":43,"line":199},4,[41,201,202],{"class":51},"  res",[41,204,103],{"class":55},[41,206,168],{"class":106},[41,208,111],{"class":110},[41,210,142],{"class":51},[41,212,75],{"class":110},[41,214,128],{"class":55},[41,216,218],{"class":43,"line":217},5,[41,219,220],{"class":55},"};\n",[11,222,224],{"id":223},"when-youll-hear-this","When You'll Hear This",[16,226,227],{},"\"Put the business logic in the controller.\" \u002F \"The UserController handles all user-related requests.\"",[229,230,231],"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 .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}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 pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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":84,"depth":84,"links":233},[234,235,236,237],{"id":13,"depth":84,"text":14},{"id":21,"depth":84,"text":22},{"id":28,"depth":84,"text":29},{"id":223,"depth":84,"text":224},"backend","A controller is the manager who actually handles your request after it passes through security.","intermediate","md","c",{},true,"\u002Fterms\u002Fc\u002Fcontroller",[247,248,249,250,251],"Model","View","MVC","Route","Middleware",{"title":5,"description":239},{"changefreq":254,"priority":255},"weekly",0.7,"terms\u002Fc\u002Fcontroller","3Cb2a6Qubumbj_wksU3smUBMw98lxnI5JBTHdBNZxTE",[259,262,267,271,274],{"title":251,"path":260,"acronym":6,"category":238,"difficulty":240,"description":261},"\u002Fterms\u002Fm\u002Fmiddleware","Middleware is like a security checkpoint at an airport.",{"title":247,"path":263,"acronym":6,"category":264,"difficulty":265,"description":266},"\u002Fterms\u002Fm\u002Fmodel","ai","beginner","A model is the trained AI — the finished product.",{"title":249,"path":268,"acronym":249,"category":269,"difficulty":265,"description":270},"\u002Fterms\u002Fm\u002Fmvc","architecture","MVC is like a restaurant: the Model is the kitchen (data and logic), the View is the plate of food (what the user sees), and the Controller is the waiter (...",{"title":250,"path":272,"acronym":6,"category":238,"difficulty":265,"description":273},"\u002Fterms\u002Fr\u002Froute","A route is like a road sign that tells incoming requests where to go.",{"title":248,"path":275,"acronym":6,"category":276,"difficulty":240,"description":277},"\u002Fterms\u002Fv\u002Fview","database","A view is a saved query that looks and acts like a table.",1776518270030]