CINXE.COM
Express - Node.js web application framework
<!DOCTYPE html> <html class="light-mode" lang="en"> <head> <title>Express - Node.js web application framework</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/png" href="/images/favicon.png" /> <script data-cfasync="false" src="/js/theme.js"></script> <link rel="stylesheet" href="/css/variables.css?_=1739652323"> <link rel="stylesheet" href="/css/themes/dark-theme.css?_=1739652323"> <link rel="stylesheet" href="/css/themes/light-theme.css?_=1739652323"> <link rel="stylesheet" href="/css/style.css?_=1739652323"> <link rel="stylesheet" href="/css/sintax.css?_=1739652323"> <link rel="stylesheet" href="/css/font-awesome.min.css"> <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,latin-ext"> <link rel="stylesheet" href="/css/langs/en.css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="description" content="Express is a fast, unopinionated, minimalist web framework for Node.js, providing a robust set of features for web and mobile applications."> <meta property="og:url" content="https://expressjs.com/"> <meta property="og:type" content="website" > <meta name="title" property="og:title" content="Express - Node.js web application framework"> <meta property="og:description" content="Express is a fast, unopinionated, minimalist web framework for Node.js, providing a robust set of features for web and mobile applications."> <meta property="og:image" content="https://expressjs.com/images/og.png" > <meta name="twitter:card" content="summary_large_image"> <meta property="twitter:domain" content="expressjs.com"> <meta property="twitter:url" content="https://expressjs.com/"> <meta name="twitter:title" content="Express - Node.js web application framework"> <meta name="twitter:description" content="Express is a fast, unopinionated, minimalist web framework for Node.js, providing a robust set of features for web and mobile applications."> <meta property="twitter:image" content="https://expressjs.com/images/og.png" > <script data-cfasync="false" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script data-cfasync="false" src="/js/app.js"></script> <script data-cfasync="false" defer src="/js/menu.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" /> </head> <body class="en-doc"> <main class="home"> <section id="home-content"> <header> <div id="mobile-menu"> <div id="nav-button" class="fa fa-bars fa-2x button"></div> </div> <section id="logo"><a href="/" class="express">Express</a> </section> <div id="navbar"> <input id="q" placeholder="🔎 search" /> <ul id="navmenu"> <li> <a href="/" id="home-menu" class="active"> Home </a> </li> <li id="getting-started-menu" class="submenu"> <a href="/en/starter/installing.html"> Getting started </a> <ul class="submenu-content"> <li> <a href="/en/starter/installing.html"> Installing </a> </li> <li> <a href="/en/starter/hello-world.html"> Hello world </a> </li> <li> <a href="/en/starter/generator.html"> Express generator </a> </li> <li> <a href="/en/starter/basic-routing.html"> Basic routing </a> </li> <li> <a href="/en/starter/static-files.html"> Static files </a> </li> <li> <a href="/en/starter/examples.html"> More examples </a> </li> <li> <a href="/en/starter/faq.html"> FAQ </a> </li> </ul> </li> <li id="guide-menu" class="submenu"> <a href="/en/guide/routing.html"> Guide </a> <ul class="submenu-content"> <li> <a href="/en/guide/routing.html"> Routing </a> </li> <li> <a href="/en/guide/writing-middleware.html"> Writing middleware </a> </li> <li> <a href="/en/guide/using-middleware.html"> Using middleware </a> </li> <li> <a href="/en/guide/overriding-express-api.html"> Overriding the Express API </a> </li> <li> <a href="/en/guide/using-template-engines.html"> Using template engines </a> </li> <li> <a href="/en/guide/error-handling.html"> Error handling </a> </li> <li> <a href="/en/guide/debugging.html"> Debugging </a> </li> <li> <a href="/en/guide/behind-proxies.html"> Express behind proxies </a> </li> <li> <a href="/en/guide/migrating-4.html"> Moving to Express 4 </a> </li> <li> <a href="/en/guide/migrating-5.html"> Moving to Express 5 </a> </li> <li> <a href="/en/guide/database-integration.html"> Database integration </a> </li> </ul> </li> <li id="application-menu" class="submenu"> <a href="/en/5x/api.html"> API reference </a> <ul class="submenu-content"> <li> <a href="/en/5x/api.html"> 5.x </a> </li> <li> <a href="/en/4x/api.html"> 4.x </a> </li> <li> <a href="/en/3x/api.html"> 3.x (deprecated) </a> </li> <li> <a href="/2x/"> 2.x (deprecated) </a> </li> </ul> </li> <li id="advanced-topics-menu" class="submenu"> <a href="/en/advanced/developing-template-engines.html"> Advanced topics </a> <ul class="submenu-content"> <li> <a href="/en/advanced/developing-template-engines.html"> Building template engines </a> </li> <li> <a href="/en/advanced/security-updates.html"> Security updates </a> </li> <li> <a href="/en/advanced/best-practice-security.html"> Security best practices </a> </li> <li> <a href="/en/advanced/best-practice-performance.html"> Performance best practices </a> </li> <li> <a href="/en/advanced/healthcheck-graceful-shutdown.html"> Health checks & shutdown </a> </li> </ul> </li> <li id="resources-menu" class="submenu"> <a href="/en/resources/glossary.html"> Resources </a> <ul class="submenu-content"> <li> <a href="/en/resources/community.html"> Community </a> </li> <li> <a href="/en/resources/glossary.html"> Glossary </a> </li> <li> <a href="/en/resources/middleware.html"> Middleware </a> </li> <li> <a href="/en/resources/utils.html"> Utility modules </a> </li> <li> <a href="/en/resources/contributing.html"> Contributing to Express </a> </li> <li> <a href="/en/changelog"> Release Change Log </a> </li> </ul> </li> <li> <a href="/en/support" id="support-menu"> Support </a> </li> <li id="blog-menu" class="submenu"> <a href="/2025/01/09/rewind-2024-triumphs-and-2025-vision.html"> Blog </a> <ul class="submenu-content"> <li> <a href="/2025/01/09/rewind-2024-triumphs-and-2025-vision.html"> Latest post </a> </li> <li> <a href="/en/blog/posts.html"> All posts </a> </li> <li> <a href="/en/blog/write-post.html"> Write a Post </a> </li> </ul> </li> </ul> </div> <div class="header-right"> <div id="theme-icon-container" class="theme-toggle default-theme" title="toggle darkmode"> <i class="fa fa-moon-o fa-2x hidden-dark"></i> <span class="sun-icon hidden-light"></span> </div> <div id="navbar"> <ul id="navmenu"> <li class="submenu"> <div id="current-lang" class="current-lang"></div> <div id="languageData" data-languages="[{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"de","name":"Deutsch"},{"code":"es","name":"Español"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"ru","name":"Русский"},{"code":"zh-cn","name":"中文 (简体)"},{"code":"zh-tw","name":"繁體中文"},{"code":"ko","name":"한국어"},{"code":"pt-br","name":"Português"},{"code":"sk","name":"Slovenčina"},{"code":"uk","name":"Українська"},{"code":"uz","name":"Oʻzbekcha"},{"code":"tr","name":"Türkçe"},{"code":"th","name":"ภาษาไทย"},{"code":"id","name":"Indonesia"}]" style="display:none;"> </div> <ul class="submenu-content"> <li> <a href="/en/"> <strong>English</strong> </a> </li> <li> <a href="/fr/"> <strong>Français</strong> </a> </li> <li> <a href="/de/"> <strong>Deutsch</strong> </a> </li> <li> <a href="/es/"> <strong>Español</strong> </a> </li> <li> <a href="/it/"> <strong>Italiano</strong> </a> </li> <li> <a href="/ja/"> <strong>日本語</strong> </a> </li> <li> <a href="/ru/"> <strong>Русский</strong> </a> </li> <li> <a href="/zh-cn/"> <strong>中文 (简体)</strong> </a> </li> <li> <a href="/zh-tw/"> <strong>繁體中文</strong> </a> </li> <li> <a href="/ko/"> <strong>한국어</strong> </a> </li> <li> <a href="/pt-br/"> <strong>Português</strong> </a> </li> <li> <a href="/sk/"> <strong>Slovenčina</strong> </a> </li> <li> <a href="/uk/"> <strong>Українська</strong> </a> </li> <li> <a href="/uz/"> <strong>Oʻzbekcha</strong> </a> </li> <li> <a href="/tr/"> <strong>Türkçe</strong> </a> </li> <li> <a href="/th/"> <strong>ภาษาไทย</strong> </a> </li> <li> <a href="/id/"> <strong>Indonesia</strong> </a> </li> </ul> </li> </ul> </div> <div id="mobile-menu"> <div id="language-picker-button" class="button"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6" width="24" height="24" style="margin-top: 5px;"> <path stroke-linecap="round" stroke-linejoin="round" d="m10.5 21 5.25-11.25L21 21m-9-3h7.5M3 5.621a48.474 48.474 0 0 1 6-.371m0 0c1.12 0 2.233.038 3.334.114M9 5.25V3m3.334 2.364C11.176 10.658 7.69 15.08 3 17.502m9.334-12.138c.896.061 1.785.147 2.666.257m-4.589 8.495a18.023 18.023 0 0 1-3.827-5.802" /> </svg> </div> </div> <div id="language-picker-menu"> <div id="navbar"> <ul id="navmenu"> <li class="submenu"> <a href="/en/">English</a> </li> <li class="submenu"> <a href="/fr/">Français</a> </li> <li class="submenu"> <a href="/de/">Deutsch</a> </li> <li class="submenu"> <a href="/es/">Español</a> </li> <li class="submenu"> <a href="/it/">Italiano</a> </li> <li class="submenu"> <a href="/ja/">日本語</a> </li> <li class="submenu"> <a href="/ru/">Русский</a> </li> <li class="submenu"> <a href="/zh-cn/">中文 (简体)</a> </li> <li class="submenu"> <a href="/zh-tw/">繁體中文</a> </li> <li class="submenu"> <a href="/ko/">한국어</a> </li> <li class="submenu"> <a href="/pt-br/">Português</a> </li> <li class="submenu"> <a href="/sk/">Slovenčina</a> </li> <li class="submenu"> <a href="/uk/">Українська</a> </li> <li class="submenu"> <a href="/uz/">Oʻzbekcha</a> </li> <li class="submenu"> <a href="/tr/">Türkçe</a> </li> <li class="submenu"> <a href="/th/">ภาษาไทย</a> </li> <li class="submenu"> <a href="/id/">Indonesia</a> </li> </ul> </div> </div> </div> </header> <div id="overlay"></div> <div id="homepage-leftpane" class="pane"> <section id="description"> <div class="express"><a href="/">Express</a><a href="en/changelog/4x.html#4.21.2" id="express-version">4.21.2</a></div> <span class="description">Fast, unopinionated, minimalist web framework for <a href="https://nodejs.org/en/">Node.js</a></span> </section> <div id="install-command">$ npm install express --save</div> </div> <div id="homepage-rightpane" class="pane"> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">express</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="dl">'</span><span class="s1">express</span><span class="dl">'</span><span class="p">)</span> <span class="kd">const</span> <span class="nx">app</span> <span class="o">=</span> <span class="nx">express</span><span class="p">()</span> <span class="kd">const</span> <span class="nx">port</span> <span class="o">=</span> <span class="mi">3000</span> <span class="nx">app</span><span class="p">.</span><span class="kd">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">/</span><span class="dl">'</span><span class="p">,</span> <span class="p">(</span><span class="nx">req</span><span class="p">,</span> <span class="nx">res</span><span class="p">)</span> <span class="o">=></span> <span class="p">{</span> <span class="nx">res</span><span class="p">.</span><span class="nx">send</span><span class="p">(</span><span class="dl">'</span><span class="s1">Hello World!</span><span class="dl">'</span><span class="p">)</span> <span class="p">})</span> <span class="nx">app</span><span class="p">.</span><span class="nx">listen</span><span class="p">(</span><span class="nx">port</span><span class="p">,</span> <span class="p">()</span> <span class="o">=></span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">`Example app listening on port </span><span class="p">${</span><span class="nx">port</span><span class="p">}</span><span class="s2">`</span><span class="p">)</span> <span class="p">})</span> </code></pre></div> </div> </div> </section> <section id="announcements"> <ul> <li> <p class="announcement-title"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M10.34 15.84a24.07 24.07 0 0 0-2.09-.09H7.5a4.5 4.5 0 1 1 0-9h.75c.704 0 1.402-.03 2.09-.09m0 9.18c.253.962.584 1.892.985 2.783.247.55.06 1.21-.463 1.511l-.657.38c-.551.318-1.26.117-1.527-.461a20.845 20.845 0 0 1-1.44-4.282m3.102.069a18.03 18.03 0 0 1-.59-4.59c0-1.586.205-3.124.59-4.59m0 9.18a23.848 23.848 0 0 1 8.835 2.535M10.34 6.66a23.847 23.847 0 0 0 8.835-2.535m0 0A23.74 23.74 0 0 0 18.795 3m.38 1.125a23.91 23.91 0 0 1 1.014 5.395m-1.014 8.855c-.118.38-.245.754-.38 1.125m.38-1.125a23.91 23.91 0 0 0 1.014-5.395m0-3.46a2.249 2.249 0 0 1 0 3.46m0-3.46a24.347 24.347 0 0 1 0 3.46" /></svg> Express 5.0 documentation is now available.</p> <p> The <a href="{{ page.lang }}/5x/api.html">API documentation</a> is a work in progress. For information on what’s in the release, see the Express <a href="https://github.com/expressjs/express/blob/5.0/History.md">release history</a> </p> </li> </ul> </section> <section id="intro"> <div id="boxes" class="clearfix"> <div id="web-applications"> <h3>Web Applications</h3> Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. </div> <div id="apis"> <h3>APIs</h3> With a myriad of HTTP utility methods and middleware at your disposal, creating a robust API is quick and easy. </div> <div id="performance"> <h3>Performance</h3> Express provides a thin layer of fundamental web application features, without obscuring Node.js features that you know and love. </div> <div id="middleware"> <h3>Middleware</h3> Express is a lightweight and flexible routing framework with minimal core features meant to be augmented through the use of Express <a href="en/resources/middleware.html">middleware</a> modules. </div> </div> </section> </main> <a id="top" href="#"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="6" fill="none" viewBox="0 0 1155 1000"><path fill="currentColor" d="m577.344 0 577.346 1000H0L577.344 0Z"/></svg></a> <footer> <section id="doc-langs"> Documentation translations provided by StrongLoop/IBM: <a href="/fr/">French</a>, <a href="/de/">German</a>, <a href="/es/">Spanish</a>, <a href="/it/">Italian</a>, <a href="/ja/">Japanese</a>, <a href="/ru/">Russian</a>, <a href="/zh-cn/">Chinese</a>, <a href="/zh-tw/">Traditional Chinese</a>, <a href="/ko/">Korean</a>, <a href="/pt-br/">Portuguese</a>. <br> Community translation available for: <a href="/sk/">Slovak</a>, <a href="/uk/">Ukrainian</a>, <a href="/uz/">Uzbek</a>, <a href="/tr/">Turkish</a>, <a href="/th/">Thai</a> and <a href="/id/">Indonesian</a>. </section> <section id="footer-content"> <div id="footer-copyright"> <a href="https://openjsf.org/"> <img src="https://raw.githubusercontent.com/openjs-foundation/artwork/main/openjs_foundation/openjs_foundation-logo-horizontal-color.svg" alt="OpenJS Foundation" width="125" height="39" class="hidden-dark" /> <img src="https://raw.githubusercontent.com/openjs-foundation/artwork/main/openjs_foundation/openjs_foundation-logo-horizontal-white.svg" alt="OpenJS Foundation" width="125" height="39" class="hidden-light" /> </a> <div id="footer-policy"> <a href="https://terms-of-use.openjsf.org"> Terms of Use </a> <a href="https://privacy-policy.openjsf.org"> Privacy Policy </a> <a id="coc" href="https://github.com/expressjs/express/blob/master/Code-Of-Conduct.md"> Code of Conduct </a> <a href="https://trademark-policy.openjsf.org"> Trademark Policy </a> <a id="security" href="https://github.com/expressjs/express/security/policy"> Security Policy </a> <a id="license" href="https://github.com/expressjs/express/blob/master/LICENSE"> License </a> </div> </div> <div id="footer-links"> <div class="footer-social"> <div> <a href="https://github.com/expressjs/express" aria-label="Go to the repository on GitHub"> <span class="hidden-dark"> <svg viewBox="0 0 256 250" width="20" height="20" fill="#24292f" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" > <path d="M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z" /> </svg> </span> <span class="hidden-light"> <svg viewBox="0 0 256 250" width="20" height="20" fill="#fff" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" > <path d="M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46 6.397 1.185 8.746-2.777 8.746-6.158 0-3.052-.12-13.135-.174-23.83-35.61 7.742-43.124-15.103-43.124-15.103-5.823-14.795-14.213-18.73-14.213-18.73-11.613-7.944.876-7.78.876-7.78 12.853.902 19.621 13.19 19.621 13.19 11.417 19.568 29.945 13.911 37.249 10.64 1.149-8.272 4.466-13.92 8.127-17.116-28.431-3.236-58.318-14.212-58.318-63.258 0-13.975 5-25.394 13.188-34.358-1.329-3.224-5.71-16.242 1.24-33.874 0 0 10.749-3.44 35.21 13.121 10.21-2.836 21.16-4.258 32.038-4.307 10.878.049 21.837 1.47 32.066 4.307 24.431-16.56 35.165-13.12 35.165-13.12 6.967 17.63 2.584 30.65 1.255 33.873 8.207 8.964 13.173 20.383 13.173 34.358 0 49.163-29.944 59.988-58.447 63.157 4.591 3.972 8.682 11.762 8.682 23.704 0 17.126-.148 30.91-.148 35.126 0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002 256 57.307 198.691 0 128.001 0Zm-80.06 182.34c-.282.636-1.283.827-2.194.39-.929-.417-1.45-1.284-1.15-1.922.276-.655 1.279-.838 2.205-.399.93.418 1.46 1.293 1.139 1.931Zm6.296 5.618c-.61.566-1.804.303-2.614-.591-.837-.892-.994-2.086-.375-2.66.63-.566 1.787-.301 2.626.591.838.903 1 2.088.363 2.66Zm4.32 7.188c-.785.545-2.067.034-2.86-1.104-.784-1.138-.784-2.503.017-3.05.795-.547 2.058-.055 2.861 1.075.782 1.157.782 2.522-.019 3.08Zm7.304 8.325c-.701.774-2.196.566-3.29-.49-1.119-1.032-1.43-2.496-.726-3.27.71-.776 2.213-.558 3.315.49 1.11 1.03 1.45 2.505.701 3.27Zm9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033-1.448-.439-2.395-1.613-2.103-2.626.301-1.01 1.747-1.484 3.207-1.028 1.446.436 2.396 1.602 2.095 2.622Zm10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95-1.53.034-2.769-.82-2.786-1.86 0-1.065 1.202-1.932 2.733-1.958 1.522-.03 2.768.818 2.768 1.868Zm10.555-.405c.182 1.03-.875 2.088-2.387 2.37-1.485.271-2.861-.365-3.05-1.386-.184-1.056.893-2.114 2.376-2.387 1.514-.263 2.868.356 3.061 1.403Z" /> </svg> </span> </a> </div> <div> <a href="https://www.youtube.com/channel/UCYjxjAeH6TRik9Iwy5nXw7g" aria-label="Go to the repository on Youtube"><svg viewBox="0 0 256 180" height="20" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M250.346 28.075A32.18 32.18 0 0 0 227.69 5.418C207.824 0 127.87 0 127.87 0S47.912.164 28.046 5.582A32.18 32.18 0 0 0 5.39 28.24c-6.009 35.298-8.34 89.084.165 122.97a32.18 32.18 0 0 0 22.656 22.657c19.866 5.418 99.822 5.418 99.822 5.418s79.955 0 99.82-5.418a32.18 32.18 0 0 0 22.657-22.657c6.338-35.348 8.291-89.1-.164-123.134Z" fill="red"/><path fill="#FFF" d="m102.421 128.06 66.328-38.418-66.328-38.418z"/></svg></a> </div> <div> <a href="https://x.com/UseExpressJS" aria-label="Go to the repository on X"> <span class="hidden-dark"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 1200 1227"><path fill="#000" d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"/></svg> </span> <span class="hidden-light"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 1200 1227"><path fill="#fff" d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"/></svg> </span> </a> </div> <div> <a href="https://openjs-foundation.slack.com/archives/C02QB1731FH" aria-label="Go to the repository on Slack"><svg viewBox="0 0 2447.6 2452.5" xmlns="http://www.w3.org/2000/svg" width="20" height="20" > <g clip-rule="evenodd" fill-rule="evenodd"> <path d="m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z" fill="#36c5f0" /> <path d="m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z" fill="#2eb67d" /> <path d="m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z" fill="#ecb22e" /> <path d="m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0" fill="#e01e5a" /> </g> </svg> </a> </div> <div> <a href="https://opencollective.com/express" aria-label="Go to the repository on Open Collective"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 64 64" fill-rule="evenodd"><path d="M52.402 31.916c0 4.03-1.17 7.895-3.178 11.087l8.196 8.23c4.014-5.375 6.523-12.094 6.523-19.318s-2.51-13.942-6.523-19.318l-8.196 8.23c2.007 3.192 3.178 6.887 3.178 11.087z" fill="#b8d3f4"/><path d="M32.004 52.41c-11.207 0-20.406-9.24-20.406-20.493s9.2-20.493 20.406-20.493c4.182 0 7.86 1.176 11.04 3.36l8.196-8.23C45.887 2.52 39.197 0 32.004 0 14.44 0 .057 14.278.057 32.084S14.44 64 32.004 64c7.36 0 14.05-2.52 19.403-6.55l-8.196-8.23c-3.178 2.016-7.025 3.192-11.207 3.192z" fill="#3385ff"/></svg></a> </div> <div> <a href="https://bsky.app/profile/expressjs.bsky.social" aria-label="Go to the repository on Bluesky"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -3.268 64 68.414" height="20" width="20"><path fill="#0085ff" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805zm36.254 0C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745z"/></svg></a> </div> </div> <a href="https://www.netlify.com"> <img src="https://www.netlify.com/v3/img/components/netlify-color-accent.svg" alt="Preview Deploys by Netlify" width="80" /> </a> </div> </section> </footer> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js" onload="docsearch({ apiKey: '7164e33055faa6ecddefd9e08fc59f5d', indexName: 'expressjs', inputSelector: '#q', algoliaOptions: { 'facetFilters': ['lang:en'] } })" async></script> </body> </html>