3:I[39275,[],""] 5:I[61343,[],""] 6:I[8700,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","15","static/chunks/15-03847672c7e36cc7.js","324","static/chunks/324-f5be64679c5cbbdb.js","185","static/chunks/app/layout-0632df5903e29bed.js"],"ThemeProviders"] 7:I[39032,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","15","static/chunks/15-03847672c7e36cc7.js","324","static/chunks/324-f5be64679c5cbbdb.js","185","static/chunks/app/layout-0632df5903e29bed.js"],"KBarSearchProvider"] 8:I[37562,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","15","static/chunks/15-03847672c7e36cc7.js","324","static/chunks/324-f5be64679c5cbbdb.js","185","static/chunks/app/layout-0632df5903e29bed.js"],"default"] 9:I[231,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","324","static/chunks/324-f5be64679c5cbbdb.js","583","static/chunks/583-4c9df2b80bfb6480.js","797","static/chunks/app/blog/%5B...slug%5D/page-4d4a59a4439e3fb6.js"],""] 4:["slug","understanding-post-surgery-rehabilitation","c"] a:T578,M11.5725 0c-.1763 0-.3098.0013-.3584.0067-.0516.0053-.2159.021-.3636.0328-3.4088.3073-6.6017 2.1463-8.624 4.9728C1.1004 6.584.3802 8.3666.1082 10.255c-.0962.659-.108.8537-.108 1.7474s.012 1.0884.108 1.7476c.652 4.506 3.8591 8.2919 8.2087 9.6945.7789.2511 1.6.4223 2.5337.5255.3636.04 1.9354.04 2.299 0 1.6117-.1783 2.9772-.577 4.3237-1.2643.2065-.1056.2464-.1337.2183-.1573-.0188-.0139-.8987-1.1938-1.9543-2.62l-1.919-2.592-2.4047-3.5583c-1.3231-1.9564-2.4117-3.556-2.4211-3.556-.0094-.0026-.0187 1.5787-.0235 3.509-.0067 3.3802-.0093 3.5162-.0516 3.596-.061.115-.108.1618-.2064.2134-.075.0374-.1408.0445-.495.0445h-.406l-.1078-.068a.4383.4383 0 01-.1572-.1712l-.0493-.1056.0053-4.703.0067-4.7054.0726-.0915c.0376-.0493.1174-.1125.1736-.143.0962-.047.1338-.0517.5396-.0517.4787 0 .5584.0187.6827.1547.0353.0377 1.3373 1.9987 2.895 4.3608a10760.433 10760.433 0 004.7344 7.1706l1.9002 2.8782.096-.0633c.8518-.5536 1.7525-1.3418 2.4657-2.1627 1.5179-1.7429 2.4963-3.868 2.8247-6.134.0961-.6591.1078-.854.1078-1.7475 0-.8937-.012-1.0884-.1078-1.7476-.6522-4.506-3.8592-8.2919-8.2087-9.6945-.7672-.2487-1.5836-.42-2.4985-.5232-.169-.0176-1.0835-.0366-1.6123-.037zm4.0685 7.217c.3473 0 .4082.0053.4857.047.1127.0562.204.1642.237.2767.0186.061.0234 1.3653.0186 4.3044l-.0067 4.2175-.7436-1.14-.7461-1.14v-3.066c0-1.982.0093-3.0963.0234-3.1502.0375-.1313.1196-.2346.2323-.2955.0961-.0494.1313-.054.4997-.054zb:T5c8,M38.819,30.606c-0.814,-1.065 -1.899,-1.683 -2.951,-2.191c-0.319,-0.154 -0.639,-0.305 -0.959,-0.456c-0.665,-0.313 -1.353,-0.637 -2.002,-0.983c-0.485,-0.259 -0.382,-0.509 -0.327,-0.644c0.052,-0.127 0.264,-0.216 0.516,-0.216c0.075,0 0.152,0.008 0.228,0.022c0.284,0.053 0.816,0.507 1.094,0.933l0.272,0.416l0.271,0.416l0.418,-0.269l0.418,-0.269c0.082,-0.053 2.025,-1.302 2.759,-1.834l0.304,-0.22l0.304,-0.22l-0.126,-0.353l-0.126,-0.353c-0.049,-0.138 -1.264,-3.38 -6.221,-3.38h-0.006c-1.611,0.042 -2.972,0.603 -4.066,1.669c-0.23,0.225 -0.434,0.476 -0.617,0.745v-1.419v-0.5v-0.5h-0.5h-0.502h-13h-0.5h-0.5v0.5v0.5v3.034v0.5v0.5h0.5h0.5h3.972v12.938v0.5v0.5h0.5h0.5h2.993h0.498h0.498l0.002,-0.498l0.002,-0.498l0.049,-12.942h3.986h0.074c-0.023,0.238 -0.038,0.479 -0.033,0.723c0.031,1.573 0.664,3.029 1.737,3.994c0.726,0.653 1.565,1.114 2.377,1.56l0.214,0.118c0.541,0.299 1.096,0.561 1.632,0.815c0.426,0.202 0.841,0.398 1.247,0.611c0.151,0.079 0.211,0.183 0.205,0.358c-0.007,0.236 -0.099,0.365 -0.326,0.461c-0.348,0.147 -0.687,0.221 -1.009,0.221c-0.484,0 -0.954,-0.171 -1.399,-0.509c-0.238,-0.181 -0.471,-0.455 -0.719,-0.746c-0.141,-0.165 -0.284,-0.332 -0.436,-0.497l-0.273,-0.294l-0.273,-0.294l-0.346,0.202l-0.346,0.202c-0.869,0.507 -2.844,1.696 -2.844,1.696l-0.422,0.254l-0.422,0.254l0.248,0.426l0.248,0.426c0.713,1.223 1.711,2.287 2.671,2.848c1.331,0.778 2.785,1.172 4.322,1.172c0.837,0 1.715,-0.118 2.61,-0.35c1.932,-0.501 3.332,-1.751 3.942,-3.52c0.642,-1.854 0.304,-4.037 -0.86,-5.559zc:T48a,M32.69,21.505h-0.006h-0.007c-1.461,0.038 -2.709,0.552 -3.71,1.527c-0.934,0.911 -1.454,2.264 -1.425,3.715c0.029,1.436 0.601,2.76 1.571,3.633c0.683,0.614 1.497,1.062 2.284,1.494l0.214,0.118c0.528,0.291 1.075,0.551 1.605,0.802c0.425,0.201 0.85,0.402 1.265,0.62c0.321,0.168 0.485,0.451 0.473,0.817c-0.014,0.43 -0.226,0.735 -0.631,0.906c-0.41,0.173 -0.814,0.26 -1.203,0.26c-0.595,0 -1.168,-0.206 -1.702,-0.611c-0.281,-0.213 -0.532,-0.508 -0.797,-0.82c-0.136,-0.159 -0.274,-0.322 -0.422,-0.481l-0.273,-0.294l-0.346,0.202c-0.867,0.506 -2.838,1.693 -2.838,1.693l-0.422,0.254l0.248,0.426c0.671,1.152 1.602,2.149 2.491,2.668c1.254,0.732 2.623,1.104 4.07,1.104c0.795,0 1.63,-0.112 2.484,-0.334c1.764,-0.458 3.041,-1.594 3.595,-3.199c0.587,-1.702 0.279,-3.701 -0.786,-5.094c-0.75,-0.982 -1.775,-1.563 -2.771,-2.045c-0.317,-0.153 -0.636,-0.304 -0.955,-0.454c-0.671,-0.316 -1.365,-0.643 -2.025,-0.995c-0.57,-0.304 -0.767,-0.756 -0.555,-1.274c0.133,-0.325 0.508,-0.527 0.979,-0.527c0.105,0 0.213,0.01 0.321,0.031c0.471,0.088 1.104,0.667 1.42,1.152l0.271,0.416l0.418,-0.269c0.082,-0.053 2.019,-1.299 2.737,-1.818l0.304,-0.22l-0.126,-0.353c-0.044,-0.126 -1.141,-3.05 -5.75,-3.05z0:["zpFjbGrcyBkA6vmLIOhfr",[[["",{"children":["blog",{"children":[["slug","understanding-post-surgery-rehabilitation","c"],{"children":["__PAGE__?{\"slug\":[\"understanding-post-surgery-rehabilitation\"]}",{}]}]}]},"$undefined","$undefined",true],["",{"children":["blog",{"children":[["slug","understanding-post-surgery-rehabilitation","c"],{"children":["__PAGE__",{},[["$L1","$L2"],null],null]},["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","blog","children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/f890b8d891238641.css","precedence":"next","crossOrigin":"$undefined"}]]}],null]},["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","blog","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":null}],null]},[["$","html",null,{"lang":"en-us","className":"__variable_81b15a scroll-smooth","suppressHydrationWarning":true,"children":[["$","link",null,{"rel":"apple-touch-icon","sizes":"76x76","href":"/static/favicons/apple-touch-icon.png"}],["$","link",null,{"rel":"icon","type":"image/png","sizes":"32x32","href":"/static/favicons/favicon-32x32.png"}],["$","link",null,{"rel":"icon","type":"image/png","sizes":"16x16","href":"/static/favicons/favicon-16x16.png"}],["$","link",null,{"rel":"manifest","href":"/static/favicons/site.webmanifest"}],["$","link",null,{"rel":"mask-icon","href":"/static/favicons/safari-pinned-tab.svg","color":"#5bbad5"}],["$","meta",null,{"name":"msapplication-TileColor","content":"#000000"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"#fff"}],["$","meta",null,{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"#000"}],["$","link",null,{"rel":"alternate","type":"application/rss+xml","href":"/feed.xml"}],["$","body",null,{"className":"bg-white pl-[calc(100vw-100%)] text-black antialiased dark:bg-dark dark:text-white","children":["$","$L6",null,{"children":["$","section",null,{"className":"mx-auto max-w-3xl px-4 sm:px-6 xl:max-w-5xl xl:px-0","children":["$","$L7",null,{"kbarConfig":{"searchDocumentsPath":"/search.json"},"children":[["$","$L8",null,{}],["$","main",null,{"className":"mb-auto mt-20","children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":["$","div",null,{"className":"flex flex-col items-start justify-start md:mt-24 md:flex-row md:items-center md:justify-center md:space-x-6","children":[["$","div",null,{"className":"space-x-2 pb-8 pt-6 md:space-y-5","children":["$","h1",null,{"className":"text-6xl font-extrabold leading-9 tracking-tight text-gray-900 dark:text-gray-100 md:border-r-2 md:px-6 md:text-8xl md:leading-14","children":"404"}]}],["$","div",null,{"className":"max-w-md","children":[["$","p",null,{"className":"mb-4 text-xl font-bold leading-normal md:text-2xl","children":"Sorry we couldn't find this page."}],["$","p",null,{"className":"mb-8","children":"But dont worry, you can find plenty of other things on our homepage."}],["$","$L9",null,{"className":"focus:shadow-outline-blue inline rounded-lg border border-transparent bg-blue-600 px-4 py-2 text-sm font-medium leading-5 text-white shadow transition-colors duration-150 hover:bg-blue-700 focus:outline-none dark:hover:bg-blue-500","href":"/","children":"Back to homepage"}]]}]]}],"notFoundStyles":[],"styles":null}]}],["$","footer",null,{"children":["$","div",null,{"className":"mb-8 mt-16 items-center justify-between space-y-4 md:mb-10 md:flex md:space-y-0","children":[["$","div",null,{"className":"flex items-center space-x-1","children":[["$","span",null,{"className":"mr-1 text-gray-500 dark:text-gray-400","children":"Build with"}],["$","div",null,{"className":"flex space-x-1.5","children":[["$","a",null,{"className":"break-words","target":"_blank","rel":"noopener noreferrer","href":"https://nextjs.org?ref=physiounlock.in","children":["$","svg",null,{"role":"img","viewBox":"0 0 24 24","xmlns":"http://www.w3.org/2000/svg","fill":"currentColor","className":"h-5 w-5","children":["$","path",null,{"d":"$a"}]}]}],["$","a",null,{"className":"break-words","target":"_blank","rel":"noopener noreferrer","href":"https://tailwindcss.com?ref=physiounlock.in","children":["$","svg",null,{"role":"img","viewBox":"0 0 24 24","xmlns":"http://www.w3.org/2000/svg","className":"h-5 w-5","fill":"currentColor","children":["$","path",null,{"fill":"#06B6D4","d":"M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z"}]}]}],["$","a",null,{"className":"break-words","target":"_blank","rel":"noopener noreferrer","href":"https://www.typescriptlang.org?ref=physiounlock.in","children":["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","x":"0px","y":"0px","width":100,"height":100,"viewBox":"0,0,256,256","className":"h-5 w-5","fill":"currentColor","children":[["$","defs",null,{"children":["$","linearGradient",null,{"x1":6,"y1":24,"x2":42,"y2":24,"gradientUnits":"userSpaceOnUse","id":"typescript_svg__color-1_nCj4PvnCO0tZ_gr1","children":[["$","stop",null,{"offset":0,"stopColor":"#0d61a9"}],["$","stop",null,{"offset":1,"stopColor":"#16528c"}]]}]}],["$","g",null,{"transform":"translate(-38.4,-38.4) scale(1.3,1.3)","children":["$","g",null,{"fill":"none","fillRule":"nonzero","stroke":"none","strokeWidth":1,"strokeLinecap":"butt","strokeLinejoin":"miter","strokeMiterlimit":10,"strokeDasharray":"","strokeDashoffset":0,"fontFamily":"none","fontWeight":"none","fontSize":"none","textAnchor":"none","style":{"mixBlendMode":"normal"},"children":["$","g",null,{"transform":"scale(5.33333,5.33333)","children":[["$","path",null,{"d":"M40,6h-32c-1.105,0 -2,0.895 -2,2v32c0,1.105 0.895,2 2,2h32c1.105,0 2,-0.895 2,-2v-32c0,-1.105 -0.895,-2 -2,-2z","fill":"url(#typescript_svg__color-1_nCj4PvnCO0tZ_gr1)"}],["$","path",null,{"d":"$b","fill":"#000000","opacity":0.05}],["$","path",null,{"d":"$c","fill":"#000000","opacity":0.05}],["$","path",null,{"d":"M27.5,21.5h-0.5h-13h-0.5v0.5v3.034v0.5h0.5h4.472v13.438v0.5h0.5h2.993h0.498l0.002,-0.498l0.051,-13.44h4.484h0.5v-0.5v-3.034v-0.5z","fill":"#000000","opacity":0.05}],["$","path",null,{"d":"M29.832,33.824c0.45,0.485 0.809,0.998 1.284,1.359c1.031,0.784 2.197,0.921 3.401,0.413c0.579,-0.244 0.917,-0.716 0.937,-1.35c0.018,-0.56 -0.252,-1.019 -0.741,-1.276c-0.942,-0.494 -1.93,-0.903 -2.861,-1.417c-0.834,-0.46 -1.705,-0.916 -2.405,-1.546c-1.855,-1.67 -1.851,-4.942 -0.132,-6.617c0.935,-0.911 2.064,-1.351 3.374,-1.385c4.31,0 5.279,2.716 5.279,2.716c-0.715,0.517 -2.714,1.803 -2.714,1.803c-0.358,-0.549 -1.09,-1.246 -1.747,-1.37c-0.826,-0.155 -1.593,0.159 -1.855,0.798c-0.302,0.737 -0.04,1.466 0.782,1.905c0.979,0.522 1.997,0.973 2.997,1.457c0.98,0.474 1.918,1.018 2.592,1.899c1.704,2.229 1.365,6.494 -2.537,7.506c-2.133,0.553 -4.218,0.427 -6.177,-0.718c-0.923,-0.539 -1.783,-1.581 -2.311,-2.488c0.002,0 1.969,-1.184 2.834,-1.689z","fill":"#ffffff"}],["$","path",null,{"d":"M14,22v3.034h4.972v13.938h2.993l0.053,-13.938h4.982v-3.034z","fill":"#ffffff"}]]}]}]}]]}]}]]}]]}],["$","div",null,{"className":"my-2 flex space-x-2 text-sm text-gray-500 dark:text-gray-400","children":[["$","div",null,{"children":"Copyright © 2025"}],["$","span",null,{"children":" • "}],["$","span",null,{"children":"PhysioUnlock"}]]}]]}]}]]}]}]}]}]]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/bfe1665f73643054.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d7c6da0509ed8364.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/f732da0794ee9781.css","precedence":"next","crossOrigin":"$undefined"}]],"$Ld"]]]] e:I[34220,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","324","static/chunks/324-f5be64679c5cbbdb.js","583","static/chunks/583-4c9df2b80bfb6480.js","797","static/chunks/app/blog/%5B...slug%5D/page-4d4a59a4439e3fb6.js"],"default"] f:I[45179,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","324","static/chunks/324-f5be64679c5cbbdb.js","583","static/chunks/583-4c9df2b80bfb6480.js","797","static/chunks/app/blog/%5B...slug%5D/page-4d4a59a4439e3fb6.js"],"default"] 10:I[5004,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","324","static/chunks/324-f5be64679c5cbbdb.js","583","static/chunks/583-4c9df2b80bfb6480.js","797","static/chunks/app/blog/%5B...slug%5D/page-4d4a59a4439e3fb6.js"],"default"] 11:I[40408,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","324","static/chunks/324-f5be64679c5cbbdb.js","583","static/chunks/583-4c9df2b80bfb6480.js","797","static/chunks/app/blog/%5B...slug%5D/page-4d4a59a4439e3fb6.js"],"default"] 12:I[75020,["211","static/chunks/211-a7574124965e97db.js","591","static/chunks/591-5828ae159bed3fe3.js","324","static/chunks/324-f5be64679c5cbbdb.js","583","static/chunks/583-4c9df2b80bfb6480.js","797","static/chunks/app/blog/%5B...slug%5D/page-4d4a59a4439e3fb6.js"],"default"] 2:[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"headline\":\"Understanding Post-Surgery Rehabilitation\",\"datePublished\":\"2023-12-10T00:00:00.000Z\",\"dateModified\":\"2023-12-10T00:00:00.000Z\",\"description\":\"Post-surgery rehabilitation is crucial for optimal recovery. In this article, we explore effective rehabilitation protocols and their importance.\",\"image\":\"/static/images/projects/physiounlock-blog.png\",\"url\":\"https://physiounlock.in/blog/understanding-post-surgery-rehabilitation\",\"author\":[{\"@type\":\"Person\",\"name\":\"Dr. Ankita Kularia\"}]}"}}],["$","section",null,{"className":"mx-auto max-w-3xl px-4 sm:px-6 xl:max-w-5xl xl:px-0","children":[["$","$Le",null,{}],["$","article",null,{"children":["$","div",null,{"children":[["$","header",null,{"children":["$","div",null,{"className":"dark:border-gray space-y-1 border-b border-gray-200 pb-10","children":["$","div",null,{"className":"space-y-6","children":[["$","h1",null,{"className":"text-3xl font-extrabold leading-9 tracking-tight text-gray-900 dark:text-gray-100 sm:text-4xl sm:leading-10 md:text-5xl md:leading-14","children":"Understanding Post-Surgery Rehabilitation"}],["$","div",null,{"className":"!mt-1 flex flex-wrap","children":[["$","$L9",null,{"href":"/tags/rehabilitation-sports","className":"mr-3 text-sm font-medium uppercase text-primary-500 hover:text-primary-600 dark:hover:text-primary-400","children":"rehabilitation-sports"}],["$","$L9",null,{"href":"/tags/physical-injury","className":"mr-3 text-sm font-medium uppercase text-primary-500 hover:text-primary-600 dark:hover:text-primary-400","children":"physical-injury"}],["$","$L9",null,{"href":"/tags/therapy","className":"mr-3 text-sm font-medium uppercase text-primary-500 hover:text-primary-600 dark:hover:text-primary-400","children":"therapy"}]]}],["$","dl",null,{"children":["$","div",null,{"children":[["$","dt",null,{"className":"sr-only","children":"Published on"}],["$","dd",null,{"className":"flex-column flex gap-1 font-semibold text-gray-500 dark:text-gray-400","children":[["$","time",null,{"dateTime":"2023-12-10T00:00:00.000Z","className":"flex items-center","children":[["$","i",null,{"className":"twa inline-block twa-lg twa-calendar"}],["$","span",null,{"className":"ml-1 md:ml-2","children":"December 10, 2023"}]]}],["$","span",null,{"className":"mx-2","children":" • "}],["$","div",null,{"className":"flex items-center","children":[["$","i",null,{"className":"twa inline-block twa-lg twa-hourglass-not-done"}],["$","span",null,{"className":"ml-1.5 md:ml-2","children":[6," mins read"]}]]}],["$","span",null,{"className":"mx-2","children":" • "}],["$","div",null,{"className":"flex items-center","children":[["$","i",null,{"className":"twa inline-block twa-lg twa-eye"}],["$","$Lf",null,{"className":"ml-1.5 md:ml-2","slug":"understanding-post-surgery-rehabilitation"}]]}]]}]]}]}]]}]}]}],["$","div",null,{"className":"grid-rows-[auto_1fr] divide-y divide-gray-200 pb-8 dark:divide-gray-700 xl:divide-y-0","children":[["$","div",null,{"className":"divide-y divide-gray-200 dark:divide-gray-700 xl:col-span-3 xl:row-span-2 xl:pb-0","children":["$","div",null,{"className":"prose max-w-none pb-8 pt-10 dark:prose-dark","children":[["$","h2",null,{"className":"content-header","id":"introduction","children":[["$","a",null,{"className":"break-words","href":"#introduction","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Introduction"]}],["$","p",null,{"children":"Modules are crucial components at the center of NestJS. In this post, we'll take a closer look at what modules are in NestJS."}],["$","p",null,{"children":["A module is a class annotated with a ",["$","code",null,{"children":"@Module()"}]," decorator. The ",["$","code",null,{"children":"@Module()"}]," decorator provides metadata that ",["$","strong",null,{"children":"Nest"}]," makes use of to organize the application structure:"]}],["$","ul",null,{"children":[["$","li",null,{"children":["Each application has at least one module, a ",["$","strong",null,{"children":"root module"}],"."]}],["$","li",null,{"children":["In ",["$","strong",null,{"children":"NestJS"}]," modules are strongly recommended as an effective way to organize your components."]}],["$","li",null,{"children":"Each module will encapsulate a set of closely related functions."}]]}],["$","div",null,{"children":["$","$L10",null,{"alt":"Diagram Module In NestJS","src":"/static/images/blogs/module-in-nestjs.png","width":"901","height":"361"}]}],["$","p",null,{"children":["The decorator ",["$","code",null,{"children":"@Module()"}]," takes a single object whose properties describe the module:"]}],["$","div",null,{"className":"remark-code-title","children":"modules/product/product.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," CategoryModule ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'modules/category.module'"}],["$","span",null,{"className":"token punctuation","children":";"}]," ",["$","span",null,{"className":"token comment","children":"// Expose route controller."}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductController ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.controller'"}],["$","span",null,{"className":"token punctuation","children":";"}]," ",["$","span",null,{"className":"token comment","children":"// Expose route controller."}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductService ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.service'"}],["$","span",null,{"className":"token punctuation","children":";"}]," ",["$","span",null,{"className":"token comment","children":"// Business Logic"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductRepository ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.repository'"}],["$","span",null,{"className":"token punctuation","children":";"}]," ",["$","span",null,{"className":"token comment","children":"// Data Access"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"9","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" imports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"CategoryModule",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":[" controllers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductsController",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"12","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductService",["$","span",null,{"className":"token punctuation","children":","}]," ProductRepository",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[" exports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"15","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"16","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"ProductModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","ul",null,{"children":[["$","li",null,{"children":[["$","code",null,{"children":"provider"}],": The Nest injector will create providers that can be shared within this module at a minimum."]}],["$","li",null,{"children":[["$","code",null,{"children":"controllers"}],": The set of controllers defined in this module"]}],["$","li",null,{"children":[["$","code",null,{"children":"imports"}],": The list of imported modules that export the providers"]}],["$","li",null,{"children":[["$","code",null,{"children":"exports"}],": The subset of ",["$","code",null,{"children":"providers"}]," that are provided by this module and should be available in other modules which import this module."]}]]}],["$","h2",null,{"className":"content-header","id":"types-of-modules-in-nestjs","children":[["$","a",null,{"className":"break-words","href":"#types-of-modules-in-nestjs","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Types Of Modules In NestJS"]}],["$","h3",null,{"className":"content-header","id":"feature-module","children":[["$","a",null,{"className":"break-words","href":"#feature-module","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Feature Module"]}],["$","ul",null,{"children":[["$","li",null,{"children":["$","p",null,{"children":["A ",["$","strong",null,{"children":"feature module"}]," simply organizes code relevant for a specific feature, keeping code organized and establishing clear boundaries."]}]}],["$","li",null,{"children":["$","p",null,{"children":["To demonstrate this, we'll create the ",["$","code",null,{"children":"ProductModule"}]," (responsible for encapsulating Product logic and endpoints)."]}]}]]}],["$","div",null,{"className":"remark-code-title","children":"modules/product/product.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductController ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.controller'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductService ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.service'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"5","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[" controllers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductController",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"default"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"ProductModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","ul",null,{"children":["$","li",null,{"children":["The last thing we need to do is import this module into the root module (the ",["$","code",null,{"children":"AppModule"}],", defined in the ",["$","code",null,{"children":"app.module.ts"}]," file)."]}]}],["$","div",null,{"className":"remark-code-title","children":"app.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductModule ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product/product.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[" imports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductModule",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"AppModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","h3",null,{"className":"content-header","id":"shared-modules","children":[["$","a",null,{"className":"break-words","href":"#shared-modules","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Shared Modules"]}],["$","ul",null,{"children":[["$","li",null,{"children":["$","p",null,{"children":["In ",["$","strong",null,{"children":"Nest"}],", modules are ",["$","code",null,{"children":"singletons"}]," (design patterns) by default, and thus you can share the same instance of any provider between multiple modules effortlessly."]}]}],["$","li",null,{"children":["$","p",null,{"children":["Every module is automatically a ",["$","strong",null,{"children":"shared module"}],"."]}]}]]}],["$","div",null,{"children":["$","$L10",null,{"alt":"Diagram Shared Module In NestJS","src":"/static/images/blogs/shared-module.png","width":"617","height":"217"}]}],["$","div",null,{"className":"remark-code-title","children":"core/logger/logger.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," LoggerService ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./logger.service'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"LoggerService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[" exports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"LoggerService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"default"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"LoggerModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","div",null,{"className":"remark-code-title","children":"modules/product/product.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," LoggerModule ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'core/logger/logger.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductController ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.controller'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ProductService ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./product.service'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"8","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[" imports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"LoggerModule",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" controllers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductController",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"12","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"ProductModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"15","children":[["$","span",null,{"className":"token comment","children":"// Import similar LoggerModule for ShopMonitoringModule and PriceMonitoringModule."}],"\n"]}]]}]}],["$","h3",null,{"className":"content-header","id":"global-modules","children":[["$","a",null,{"className":"break-words","href":"#global-modules","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Global Modules"]}],["$","ul",null,{"children":[["$","li",null,{"children":["$","p",null,{"children":["In the showcased example within the ",["$","strong",null,{"children":"shared module section"}],", the ",["$","strong",null,{"children":"LoggerModule"}]," undergoes multiple imports across three distinct modules—namely, ",["$","strong",null,{"children":"ProductModule, ShopMonitoringModule, and PriceMonitoringModule"}],"."]}]}],["$","li",null,{"children":["$","p",null,{"children":["This redundancy is both ",["$","strong",null,{"children":"noticeable and avoidable"}],". To address this issue, ",["$","strong",null,{"children":"Nest"}]," offers a feature known as the ",["$","strong",null,{"children":"Global Module"}],"."]}]}],["$","li",null,{"children":["$","p",null,{"children":["Rather than importing the ",["$","strong",null,{"children":"LoggerModule"}]," in each module requiring its functionality, we can simplify the process by importing the ",["$","strong",null,{"children":"LoggerModule"}]," just once in the ",["$","strong",null,{"children":"AppModule"}]," (the root module) and applying the ",["$","code",null,{"children":"@Global()"}]," decorator to the class, turning it into a ",["$","strong",null,{"children":"Global Module"}],"."]}]}],["$","li",null,{"children":["$","p",null,{"children":"This approach significantly reduces redundancy and promotes a more efficient and maintainable code structure."}]}]]}],["$","div",null,{"children":["$","$L10",null,{"alt":"Diagram Global Module In NestJS","src":"/static/images/blogs/global-module.png","width":"1270","height":"347"}]}],["$","ul",null,{"children":["$","li",null,{"children":[["$","code",null,{"children":"@Global()"}]," decorator make the module global, that you want to provide a set of providers which should be available everywhere:"]}]}],["$","div",null,{"className":"remark-code-title","children":"core/logger/logger.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module",["$","span",null,{"className":"token punctuation","children":","}]," Global ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," LoggerService ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./logger.service'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Global"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"LoggerService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[" exports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"LoggerService",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"LoggerModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","ul",null,{"children":["$","li",null,{"children":["Import ",["$","strong",null,{"children":"LoggerModule"}]," into ",["$","strong",null,{"children":"AppModule"}]," (root module):"]}]}],["$","div",null,{"className":"remark-code-title","children":"app.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," ConfigModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/config'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"3","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"4","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," LoggerModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./core/logger/logger.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," ProductModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./modules/product/product.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," ShopMonitoringModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./modules/shop-monitoring/shop-monitoring.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," PriceMonitoringModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./modules/price-monitoring/price-monitoring.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"9","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" imports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"ProductModule",["$","span",null,{"className":"token punctuation","children":","}]," ShopMonitoringModule",["$","span",null,{"className":"token punctuation","children":","}]," PriceMonitoringModule",["$","span",null,{"className":"token punctuation","children":","}]," LoggerModule",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":[" controllers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"12","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"AppModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","ul",null,{"children":["$","li",null,{"children":["Using ",["$","strong",null,{"children":"LoggerService"}]," in ",["$","strong",null,{"children":"ProductService"}]," (We do not need to import ",["$","strong",null,{"children":"LoggerModule"}]," into ",["$","strong",null,{"children":"ProductModule"}],"):"]}]}],["$","div",null,{"className":"remark-code-title","children":"modules/product/product.service.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Injectable ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," LoggerService ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'../../core/logger/logger.service'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Injectable"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"ProductService"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[" ",["$","span",null,{"className":"token function","children":"constructor"}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token keyword","children":"private"}]," logger",["$","span",null,{"className":"token operator","children":":"}]," LoggerService",["$","span",null,{"className":"token punctuation","children":")"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"9","children":[" ",["$","span",null,{"className":"token keyword","children":"async"}]," ",["$","span",null,{"className":"token function","children":"findAll"}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token builtin","children":"Promise"}],["$","span",null,{"className":"token operator","children":"<"}],["$","span",null,{"className":"token builtin","children":"any"}],["$","span",null,{"className":"token operator","children":">"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" ",["$","span",null,{"className":"token keyword","children":"this"}],["$","span",null,{"className":"token punctuation","children":"."}],"logger",["$","span",null,{"className":"token punctuation","children":"."}],["$","span",null,{"className":"token function","children":"log"}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token string","children":"'Get all products'"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"12","children":[" ",["$","span",null,{"className":"token keyword","children":"return"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":[["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","h3",null,{"className":"content-header","id":"dynamic-modules","children":[["$","a",null,{"className":"break-words","href":"#dynamic-modules","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Dynamic Modules"]}],["$","ul",null,{"children":[["$","li",null,{"children":["$","p",null,{"children":["This is a ",["$","strong",null,{"children":"feature"}]," that allows you to easily create a custom module that can ",["$","strong",null,{"children":"register and configure providers dynamically"}],"."]}]}],["$","li",null,{"children":["$","p",null,{"children":["Following is an example of a ",["$","strong",null,{"children":"dynamic module"}]," definition for a ",["$","code",null,{"children":"DatabaseModule"}],":"]}]}]]}],["$","div",null,{"className":"remark-code-title","children":"core/database/database.providers.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Connection ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./connection.provider'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," createConnection",["$","span",null,{"className":"token punctuation","children":","}]," Repository ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'typeorm'"}],["$","span",null,{"className":"token punctuation","children":";"}]," ",["$","span",null,{"className":"token comment","children":"// Assuming TypeORM for database interaction"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"function"}]," ",["$","span",null,{"className":"token function","children":"createDatabaseProviders"}],["$","span",null,{"className":"token punctuation","children":"("}],"options",["$","span",null,{"className":"token punctuation","children":","}]," entities",["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token builtin","children":"any"}],["$","span",null,{"className":"token punctuation","children":"["}],["$","span",null,{"className":"token punctuation","children":"]"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":[" ",["$","span",null,{"className":"token keyword","children":"const"}]," providers ",["$","span",null,{"className":"token operator","children":"="}]," entities",["$","span",null,{"className":"token punctuation","children":"."}],["$","span",null,{"className":"token function","children":"map"}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"("}],"entity",["$","span",null,{"className":"token punctuation","children":")"}]," ",["$","span",null,{"className":"token operator","children":"=>"}]," ",["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[" provide",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token template-string","children":[["$","span",null,{"className":"token string template-punctuation","children":"`"}],["$","span",null,{"className":"token interpolation","children":[["$","span",null,{"className":"token punctuation interpolation-punctuation","children":"$${"}],"entity",["$","span",null,{"className":"token punctuation interpolation-punctuation","children":"}"}]]}],["$","span",null,{"className":"token string","children":"Repository"}],["$","span",null,{"className":"token string template-punctuation","children":"`"}]]}],["$","span",null,{"className":"token punctuation","children":","}]," ",["$","span",null,{"className":"token comment","children":"// Dynamic provider name based on the entity"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[" ",["$","span",null,{"className":"token function function-variable","children":"useFactory"}],["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"("}],"connection",["$","span",null,{"className":"token operator","children":":"}]," Connection",["$","span",null,{"className":"token punctuation","children":")"}]," ",["$","span",null,{"className":"token operator","children":"=>"}]," connection",["$","span",null,{"className":"token punctuation","children":"."}],["$","span",null,{"className":"token function","children":"getRepository"}],["$","span",null,{"className":"token punctuation","children":"("}],"entity",["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[" inject",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"Connection",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"12","children":[" ",["$","span",null,{"className":"token keyword","children":"return"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[" ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":[" provide",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token string","children":"'DATABASE_CONNECTION'"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"15","children":[" ",["$","span",null,{"className":"token function function-variable","children":"useFactory"}],["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token keyword","children":"async"}]," ",["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":")"}]," ",["$","span",null,{"className":"token operator","children":"=>"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"16","children":[" ",["$","span",null,{"className":"token keyword","children":"const"}]," connection ",["$","span",null,{"className":"token operator","children":"="}]," ",["$","span",null,{"className":"token keyword","children":"await"}]," ",["$","span",null,{"className":"token function","children":"createConnection"}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"17","children":[" ",["$","span",null,{"className":"token operator","children":"..."}],"options",["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"18","children":[" entities",["$","span",null,{"className":"token operator","children":":"}]," entities",["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"19","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"20","children":[" ",["$","span",null,{"className":"token keyword","children":"return"}]," connection",["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"21","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"22","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"23","children":[" ",["$","span",null,{"className":"token operator","children":"..."}],"providers",["$","span",null,{"className":"token punctuation","children":","}]," ",["$","span",null,{"className":"token comment","children":"// Include additional providers related to entities"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"24","children":[" ",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"25","children":[["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","div",null,{"className":"remark-code-title","children":"core/database/database.module.ts"}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module",["$","span",null,{"className":"token punctuation","children":","}]," DynamicModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," createDatabaseProviders ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./database.providers'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Connection ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'./connection.provider'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"5","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"6","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"7","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"Connection",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"DatabaseModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" ",["$","span",null,{"className":"token keyword","children":"static"}]," ",["$","span",null,{"className":"token function","children":"forRoot"}],["$","span",null,{"className":"token punctuation","children":"("}],"entities ",["$","span",null,{"className":"token operator","children":"="}]," ",["$","span",null,{"className":"token punctuation","children":"["}],["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}]," options",["$","span",null,{"className":"token operator","children":"?"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token operator","children":":"}]," DynamicModule ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":[" ",["$","span",null,{"className":"token keyword","children":"const"}]," providers ",["$","span",null,{"className":"token operator","children":"="}]," ",["$","span",null,{"className":"token function","children":"createDatabaseProviders"}],["$","span",null,{"className":"token punctuation","children":"("}],"options",["$","span",null,{"className":"token punctuation","children":","}]," entities",["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"12","children":[" ",["$","span",null,{"className":"token keyword","children":"return"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[" module",["$","span",null,{"className":"token operator","children":":"}]," DatabaseModule",["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":[" providers",["$","span",null,{"className":"token operator","children":":"}]," providers",["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"15","children":[" exports",["$","span",null,{"className":"token operator","children":":"}]," providers",["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"16","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"17","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"18","children":[["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","blockquote",null,{"children":["$","p",null,{"children":[["$","strong",null,{"children":"Hint"}],": The ",["$","code",null,{"children":"forRoot()"}]," method may return a ",["$","em",null,{"children":"dynamic module"}]," either synchronously or asynchronously."]}]}],["$","ul",null,{"children":[["$","li",null,{"children":["$","p",null,{"children":["This ",["$","strong",null,{"children":"module"}]," defines the ",["$","code",null,{"children":"Connection"}]," provider by default (in the ",["$","code",null,{"children":"@Module()"}]," decorator metadata), but additionally - depending on the ",["$","strong",null,{"children":"entities and options"}]," objects passed into the ",["$","code",null,{"children":"forRoot()"}]," method - exposes a collection of providers, for example, ",["$","strong",null,{"children":"repositories"}],"."]}]}],["$","li",null,{"children":["$","p",null,{"children":["The ",["$","code",null,{"children":"DatabaseModule"}]," can be imported and configured in the following manner:"]}]}]]}],["$","$L11",null,{"className":"language-ts","children":["$","code",null,{"className":"language-ts code-highlight","children":[["$","span",null,{"className":"code-line line-number","line":"1","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Module ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'@nestjs/common'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"2","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"3","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," DatabaseModule ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'core/database/database.module'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"4","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," User ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'modules/user/user.entity.ts'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"5","children":[["$","span",null,{"className":"token keyword","children":"import"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}]," Product ",["$","span",null,{"className":"token punctuation","children":"}"}]," ",["$","span",null,{"className":"token keyword","children":"from"}]," ",["$","span",null,{"className":"token string","children":"'modules/product/product.entity.ts'"}],["$","span",null,{"className":"token punctuation","children":";"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"6","children":"\n"}],["$","span",null,{"className":"code-line line-number","line":"7","children":[["$","span",null,{"className":"token decorator","children":[["$","span",null,{"className":"token operator at","children":"@"}],["$","span",null,{"className":"token function","children":"Module"}]]}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"8","children":[" imports",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token punctuation","children":"["}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"9","children":[" DatabaseModule",["$","span",null,{"className":"token punctuation","children":"."}],["$","span",null,{"className":"token function","children":"forRoot"}],["$","span",null,{"className":"token punctuation","children":"("}],["$","span",null,{"className":"token punctuation","children":"["}],"User",["$","span",null,{"className":"token punctuation","children":","}]," Product",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"10","children":[" type",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token string","children":"'postgres'"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"11","children":[" host",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token string","children":"'localhost'"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"12","children":[" port",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token number","children":"3306"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"13","children":[" username",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token string","children":"'root'"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"14","children":[" password",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token string","children":"'password'"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"15","children":[" database",["$","span",null,{"className":"token operator","children":":"}]," ",["$","span",null,{"className":"token string","children":"'mydatabase'"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"16","children":[" ",["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"17","children":[" ",["$","span",null,{"className":"token punctuation","children":"]"}],["$","span",null,{"className":"token punctuation","children":","}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"18","children":[["$","span",null,{"className":"token punctuation","children":"}"}],["$","span",null,{"className":"token punctuation","children":")"}],"\n"]}],["$","span",null,{"className":"code-line line-number","line":"19","children":[["$","span",null,{"className":"token keyword","children":"export"}]," ",["$","span",null,{"className":"token keyword","children":"class"}]," ",["$","span",null,{"className":"token class-name","children":"AppModule"}]," ",["$","span",null,{"className":"token punctuation","children":"{"}],["$","span",null,{"className":"token punctuation","children":"}"}],"\n"]}]]}]}],["$","h2",null,{"className":"content-header","id":"conclusion","children":[["$","a",null,{"className":"break-words","href":"#conclusion","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"Conclusion"]}],["$","ul",null,{"children":[["$","li",null,{"children":["Understanding and effectively utilizing modules in ",["$","strong",null,{"children":"NestJS"}]," is essential for building ",["$","strong",null,{"children":"scalable and maintainable"}]," applications."]}],["$","li",null,{"children":["Whether organizing feature-specific code, sharing providers, optimizing global functionality, or dynamically configuring modules, ",["$","strong",null,{"children":"NestJS"}]," modules offer a robust foundation for application development."]}]]}],["$","h2",null,{"className":"content-header","id":"references","children":[["$","a",null,{"className":"break-words","href":"#references","aria-hidden":"true","tabIndex":"-1","children":["$","span",null,{"className":"content-header-link","children":["$","svg",null,{"className":"h-5 linkicon w-5","fill":"currentColor","viewBox":"0 0 20 20","xmlns":"http://www.w3.org/2000/svg","children":[["$","path",null,{"d":"M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z"}],["$","path",null,{"d":"M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z"}]]}]}]}],"References"]}],["$","ul",null,{"children":[["$","li",null,{"children":["$","a",null,{"className":"break-words","target":"_blank","rel":"noopener noreferrer","href":"https://docs.nestjs.com/modules","children":"Overview Modules In NestJS"}]}],["$","li",null,{"children":["$","a",null,{"className":"break-words","target":"_blank","rel":"noopener noreferrer","href":"https://docs.nestjs.com/fundamentals/dynamic-modules","children":"Fundamentals - Dynamic modules"}]}]]}],["$","p",null,{"children":["Happy reading! ",["$","i",null,{"className":"twa inline-block twa-lg twa-clinking-beer-mugs"}]]}]]}]}],["$","div",null,{"className":"pb-6 pt-6 text-center text-gray-700 dark:text-gray-300","id":"comment","children":["$","$L12",null,{"slug":"understanding-post-surgery-rehabilitation"}]}],["$","footer",null,{"children":["$","div",null,{"className":"flex flex-col text-sm font-medium sm:flex-row sm:justify-between sm:text-base","children":[["$","div",null,{"className":"pt-4 xl:pt-8","children":["$","$L9",null,{"className":"text-primary hover:text-sky-600 dark:hover:text-sky-400","href":"/blog/common-workplace-ergonomic-issues-and-solutions","aria-label":"Previous post: Common Workplace Ergonomic Issues and Solutions","children":["← ","Common Workplace Ergonomic Issues and Solutions"]}]}],"$undefined"]}]}]]}]]}]}]]}]] d:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Understanding Post-Surgery Rehabilitation | PhysioUnlock"}],["$","meta","3",{"name":"description","content":"Post-surgery rehabilitation is crucial for optimal recovery. In this article, we explore effective rehabilitation protocols and their importance."}],["$","meta","4",{"name":"robots","content":"index, follow"}],["$","meta","5",{"name":"googlebot","content":"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"}],["$","link","6",{"rel":"canonical","href":"https://physiounlock.in/blog/understanding-post-surgery-rehabilitation"}],["$","link","7",{"rel":"alternate","type":"application/rss+xml","href":"https://physiounlock.in/feed.xml"}],["$","meta","8",{"property":"og:title","content":"Understanding Post-Surgery Rehabilitation"}],["$","meta","9",{"property":"og:description","content":"Post-surgery rehabilitation is crucial for optimal recovery. In this article, we explore effective rehabilitation protocols and their importance."}],["$","meta","10",{"property":"og:url","content":"https://physiounlock.in/blog/understanding-post-surgery-rehabilitation"}],["$","meta","11",{"property":"og:site_name","content":"PhysioUnlock"}],["$","meta","12",{"property":"og:locale","content":"en_US"}],["$","meta","13",{"property":"og:image","content":"https://physiounlock.in/static/images/projects/physiounlock-blog.png"}],["$","meta","14",{"property":"og:type","content":"article"}],["$","meta","15",{"property":"article:published_time","content":"2023-12-10T00:00:00.000Z"}],["$","meta","16",{"property":"article:modified_time","content":"2023-12-10T00:00:00.000Z"}],["$","meta","17",{"property":"article:author","content":"Dr. Ankita Kularia"}],["$","meta","18",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","19",{"name":"twitter:title","content":"Understanding Post-Surgery Rehabilitation"}],["$","meta","20",{"name":"twitter:description","content":"Post-surgery rehabilitation is crucial for optimal recovery. In this article, we explore effective rehabilitation protocols and their importance."}],["$","meta","21",{"name":"twitter:image","content":"https://physiounlock.in/static/images/projects/physiounlock-blog.png"}],["$","meta","22",{"name":"next-size-adjust"}]] 1:null