

{"id":69390,"date":"2019-09-10T17:51:05","date_gmt":"2019-09-10T12:21:05","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=69390"},"modified":"2019-09-10T17:51:05","modified_gmt":"2019-09-10T12:21:05","slug":"javascript-modules","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/javascript-modules\/","title":{"rendered":"JavaScript Modules &#8211; How modules help to reduce complexity of scripts"},"content":{"rendered":"<p>While developing in JavaScript, you will often hear jargon, <em>including modules, module-patterns,<\/em> etc. This tutorial will explain all that and more because if you don\u2019t, you\u2019ll quickly become overwhelmed with the project. It is a vital component for web developers, even though the module system can be quite intimidating. Stick with this JavaScript modules tutorial and gain all the knowledge you will need to get you started. We will begin with the what, why and how of JavaScript modules and proceed from there.<\/p>\n<p>I can\u2019t emphasize the significance of practicing what you learn enough. Implement what you learn in the article to get familiar with the concepts. Also, work on the codes parallelly with me so you get the hang of what\u2019s happening in the code.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-69471\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg\" alt=\"JavaScript Modules Tutorial\" width=\"802\" height=\"420\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg 802w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial-520x272.jpg 520w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a><\/p>\n<h2>What are JavaScript Modules?<\/h2>\n<p>JavaScript modules are an implementation of closures, thus, I strongly suggest that you go through DataFlair\u2019s <a href=\"https:\/\/data-flair.training\/blogs\/javascript-closures\/\"><em><strong>JavaScript tutorial on Closures<\/strong><\/em><\/a> before you continue further with this topic.<\/p>\n<p>Moving on, <em>JavaScript modules (also called \u201cES modules\u201d or \u201cECMAScript modules\u201d) contain a class or a library of functions.<\/em> Simply, modules are like a book chapter: a cluster of words (or code). Since initially, our scripts were small and simple, there was no need for modules in JavaScript. But, as our application increased in size and complexity, splitting it into multiple files (modules) made sense. Introduced in 2015, these have gradually evolved since then, and now all major browsers and NodeJS support them. Don\u2019t forget, good modules are highly self-contained and have distinct functionality. This allows us to shuffle, add, or remove them as per our requirements, without disrupting the whole system.<\/p>\n<p>Modules are nothing but files, which can load each other using the special directives import and export.<\/p>\n<ul>\n<li><strong>export:<\/strong> It labels variables and functions that should be accessible from outside the current module.<\/li>\n<li><strong>import:<\/strong> It allows us to import functionality from other modules.<\/li>\n<\/ul>\n<p>We will learn more about these keywords further in this tutorial. For now, let\u2019s focus on the advantages of using modules in your program.<\/p>\n<h3>Why use Modules?<\/h3>\n<p>There are numerous benefits of modules for a sprawling, interdependent codebase. Some of the most important ones are as follows:<\/p>\n<p><strong>Maintainability &#8211;<\/strong>\u00a0Since modules are self-contained, they reduce the dependencies on parts of the codebase as much as possible to improve them independently. Also, updating a single module is much more convenient than updating the complete code. Updating one module doesn\u2019t affect the other modules.<\/p>\n<p><strong>Namespacing &#8211;<\/strong> Since variables outside the scope of a top-level function are global, it\u2019s common to have \u201cnamespace pollution\u201d in our code. This means that totally unrelated code shares those global variables, creating confusion, resulting in unexpected outputs. Modules help us avoid these situations by creating private space for the variables.<\/p>\n<p><em><strong>You can&#8217;t afford to miss the <a href=\"https:\/\/data-flair.training\/blogs\/javascript-variable-tutorial\/\">JavaScript Variables Tutorial<\/a><\/strong><\/em><\/p>\n<p><strong>Reusability &#8211;<\/strong>\u00a0JavaScript modules let us copy the previous code into our program and reuse it over and over again. Writing the complete code for the same task is time-consuming; modules provide us with a better approach to optimize our code.<\/p>\n<p>Now, we know how useful modules can be for our application.<\/p>\n<h3>How to Use JavaScript Modules?<\/h3>\n<p>The first thing you need to remember while working with modules is that they cannot work without a server connection. According to the CORS policy, export statements are only valid with a server; otherwise, the browser blocks the file. Thus, I recommend you to install XAMPP on your computer to work with the localhost. Next, open the browser and localhost\/phpMyAdmin type in the address bar.<\/p>\n<h4>Exporting Module Features<\/h4>\n<p>The first step to use a module is to create one, which is possible with the help of the <strong>export<\/strong> keyword. We export all the variables and functions in the module so they are available for use to other files. Every module performs a specific task, and work only with the help of a server. The following program creates a JavaScript file and exports the data inside.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">\/\/export this file\r\nexport function hello(user) {\r\n  return `Hello, ${user}!`;\r\n}<\/pre>\n<p>In the code above, the <strong>return<\/strong> statement returns a string <strong>\u201cHello userName\u201d<\/strong>, where userName is whatever name is sent as an argument at the time of function call.<\/p>\n<h3>Importing Features into your Script<\/h3>\n<p>The next step is to use the module in our program by the <strong>import<\/strong> statement. We import the module in the document and use its variables and functions, without having to redefine them. The statement binds the current document with the module, providing it with additional functionality. The following code imports the above module evaluates it and uses it to produce an output in the browser.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;html&gt;\r\n    &lt;body&gt;\r\n\r\n        &lt;script type=\"module\"&gt;\r\n            \/\/import the JavaScript module from the file\r\n            import {hello} from '.\/hello.js';\r\n\r\n            \/\/use the hello() function, defined in the module\r\n            document.body.innerHTML = hello('DataFlair');\r\n        &lt;\/script&gt;\r\n\r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>The type attribute specifies that the script added is a module and treats it accordingly.<\/p>\n<h3>Core JavaScript Module Features<\/h3>\n<p>Regular scripts are different from the modules, differentiated by its core features. These features are valid for the browser as well as server-side JavaScript. The following are the core module features that distinguish modules:<\/p>\n<h4>Always use \u201cstrict\u201d<\/h4>\n<p>By default, modules use the strict mode. For example, if you try to assign a value to an undeclared variable, you will get an error.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;script type=\"module\"&gt;\r\n    var1 = 5; \/\/ error\r\n&lt;\/script&gt;<\/pre>\n<h4>Module-level Scope<\/h4>\n<p>All modules have their own top-level scope. This means that other scripts cannot access the modules\u2019 global (top-level) variables and functions. The module has to export everything it wants to grant access to the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Scripting_language\">scripts<\/a>. If you try to do so, the import fails and doesn\u2019t add any functionality.<\/p>\n<p>To create a window-level global variable, we can explicitly assign the variable to the <strong>window<\/strong> and access <strong>window.userName<\/strong>. But only use these variables with a reason because this is an exception to the case mentioned before.<\/p>\n<p><em><strong>Time to revise the concept of <a href=\"https:\/\/data-flair.training\/blogs\/javascript-function\/\">JavaScript Functions<\/a><\/strong><\/em><\/p>\n<h4>Module code is only evaluated the first time when imported<\/h4>\n<p>If multiple places import the same module in a script, then it is only imported for the first time. After that, all the importers receive exports. But there are some consequences you need to be aware of.<\/p>\n<p>Primarily, since the module only loads once, any statement that executes on the import triggers only once: the first time.<\/p>\n<p>Practically, we use the top-level module code for the initialization and creation of internal data structures. If you want to make anything reusable, you can simply export it.<\/p>\n<p>Let\u2019s see how this affects our code with the help of a JavaScript program.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import.meta<\/pre>\n<p>The import.meta object stores all the information regarding the current module. The contents of the object depend on the environment.<\/p>\n<h2>Summary<\/h2>\n<p>With this, we have covered all the core aspects of JavaScript modules including reasons and method of using it. We also learned about the process to import features into your script and major features of the JavaScript module.<\/p>\n<p><em><strong>Next tutorial lined up for you &#8211; <a href=\"https:\/\/data-flair.training\/blogs\/javascript-debugging-and-testing\/\">JavaScript Debugging and Testing<\/a><\/strong><\/em><\/p>\n<p>There is no need to remind you but still, if you have any doubts, share them in the comments section. We will be glad to assist you.<\/p>\n<p>Happy Learning!<span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:1414,&quot;href&quot;:&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Scripting_language&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20251010070933\\\/https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Scripting_language&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-09 06:41:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-31 13:10:07&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-04 00:29:37&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-25 08:36:39&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-12 14:55:27&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-05-12 14:55:27&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>While developing in JavaScript, you will often hear jargon, including modules, module-patterns, etc. This tutorial will explain all that and more because if you don\u2019t, you\u2019ll quickly become overwhelmed with the project. It is&#46;&#46;&#46;<\/p>\n","protected":false},"author":7,"featured_media":69471,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18979],"tags":[21049,21047,21051,21050,21048],"class_list":["post-69390","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-exporting-module","tag-javascript-modules","tag-js-module","tag-strict-mode","tag-why-use-modules"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JavaScript Modules - How modules help to reduce complexity of scripts - DataFlair<\/title>\n<meta name=\"description\" content=\"JavaScript Modules - Explore the reasons to use modules, process to use them, importing features into your script &amp; core features of JS module.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/javascript-modules\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Modules - How modules help to reduce complexity of scripts - DataFlair\" \/>\n<meta property=\"og:description\" content=\"JavaScript Modules - Explore the reasons to use modules, process to use them, importing features into your script &amp; core features of JS module.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/javascript-modules\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-10T12:21:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JavaScript Modules - How modules help to reduce complexity of scripts - DataFlair","description":"JavaScript Modules - Explore the reasons to use modules, process to use them, importing features into your script & core features of JS module.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/javascript-modules\/","og_locale":"en_US","og_type":"article","og_title":"JavaScript Modules - How modules help to reduce complexity of scripts - DataFlair","og_description":"JavaScript Modules - Explore the reasons to use modules, process to use them, importing features into your script & core features of JS module.","og_url":"https:\/\/data-flair.training\/blogs\/javascript-modules\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2019-09-10T12:21:05+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd"},"headline":"JavaScript Modules &#8211; How modules help to reduce complexity of scripts","datePublished":"2019-09-10T12:21:05+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/"},"wordCount":1167,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg","keywords":["Exporting Module","JavaScript Modules","js module","Strict Mode","Why use Modules"],"articleSection":["JavaScript Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/javascript-modules\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/","url":"https:\/\/data-flair.training\/blogs\/javascript-modules\/","name":"JavaScript Modules - How modules help to reduce complexity of scripts - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg","datePublished":"2019-09-10T12:21:05+00:00","description":"JavaScript Modules - Explore the reasons to use modules, process to use them, importing features into your script & core features of JS module.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/javascript-modules\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/09\/JavaScript-Modules-Tutorial.jpg","width":802,"height":420,"caption":"JavaScript Modules Tutorial"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/javascript-modules\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"JavaScript Tutorial","item":"https:\/\/data-flair.training\/blogs\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"JavaScript Modules &#8211; How modules help to reduce complexity of scripts"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/beb0cab24b7aa54423a3b50e669a9dcd","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c322416204232f4dd97ef3901b0a499a5d34d7ba7fe333f4bfe53a907873d293?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team specializes in creating clear, actionable content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Backed by industry expertise, we make learning easy and career-oriented for beginners and pros alike.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam3\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/69390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=69390"}],"version-history":[{"count":5,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/69390\/revisions"}],"predecessor-version":[{"id":69473,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/69390\/revisions\/69473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/69471"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=69390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=69390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=69390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}