CINXE.COM
Express middleware
<!DOCTYPE html> <html lang="en" prefix="og: http://ogp.me/ns#"> <head> <title>Express middleware</title> <meta charset="utf-8"> <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?_=1743445225"> <link rel="stylesheet" href="/css/themes/dark-theme.css?_=1743445225"> <link rel="stylesheet" href="/css/style.css?_=1743445225"> <link rel="stylesheet" href="/css/sintax.css?_=1743445225"> <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="Explore a list of Express.js middleware modules maintained by the Express team and the community, including built-in middleware and popular third-party modules."> <meta property="og:url" content="https://expressjs.com/en/resources/middleware.html"> <meta property="og:type" content="website" > <meta name="title" property="og:title" content="Express middleware"> <meta property="og:description" content="Explore a list of Express.js middleware modules maintained by the Express team and the community, including built-in middleware and popular third-party modules."> <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/en/resources/middleware.html"> <meta name="twitter:title" content="Express middleware"> <meta name="twitter:description" content="Explore a list of Express.js middleware modules maintained by the Express team and the community, including built-in middleware and popular third-party modules."> <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"> <header> <div id="mobile-menu"> <div id="nav-button" class="fa fa-bars fa-2x button"></div> </div> <div class="logo-container"> <a href="/" class="hidden-dark" title="Go to homepage" aria-label="Go to homepage"> <img src="/images/brand/logotype-light.svg" alt="Express.js logo" width="90" height="30"/> </a> <a href="/" class="hidden-light" title="Go to homepage" aria-label="Go to homepage"> <img src="/images/brand/logotype-dark.svg" alt="Express.js logo" width="90" height="30"/> </a> </div> <div id="navbar"> <input id="q" placeholder="🔎 search"> <ul id="navmenu"> <li> <a href="/" id="home-menu" > 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" class="active" > 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/03/31/v5-1-latest-release.html" > Blog </a> <ul class="submenu-content"> <li> <a href="/2025/03/31/v5-1-latest-release.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"> <button id="theme-toggle" type="button" class="theme-btn" title="change theme"> <i class="fa fa-moon-o fa-2x hidden-dark"></i> <span class="sun-icon hidden-light"></span> </button> <div class="desktop-lang-switcher"> <button class="lang-btn" type="button" aria-haspopup="menu" aria-label="Change language"> <span id="current-lang"></span> </button> <ul class="lang-list submenu-content" aria-labelledby="current-lang" > <li> <a href="/en/resources/middleware.html"> <strong>English</strong> </a> </li> <li> <a href="/fr/resources/middleware.html"> Français </a> </li> <li> <a href="/de/resources/middleware.html"> Deutsch </a> </li> <li> <a href="/es/resources/middleware.html"> Español </a> </li> <li> <a href="/it/resources/middleware.html"> Italiano </a> </li> <li> <a href="/ja/resources/middleware.html"> 日本語 </a> </li> <li> <a href="/ru/resources/middleware.html"> Русский </a> </li> <li> <a href="/zh-cn/resources/middleware.html"> 中文 (简体) </a> </li> <li> <a href="/zh-tw/resources/middleware.html"> 繁體中文 </a> </li> <li> <a href="/ko/resources/middleware.html"> 한국어 </a> </li> <li> <a href="/pt-br/resources/middleware.html"> Português </a> </li> <li> <a href="/sk/resources/middleware.html"> Slovenčina </a> </li> <li> <a href="/uk/resources/middleware.html"> Українська </a> </li> <li> <a href="/uz/resources/middleware.html"> Oʻzbekcha </a> </li> <li> <a href="/tr/resources/middleware.html"> Türkçe </a> </li> <li> <a href="/th/resources/middleware.html"> ภาษาไทย </a> </li> <li> <a href="/id/resources/middleware.html"> Indonesia </a> </li> </ul> <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> </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/resources/middleware.html">English</a> </li> <li class="submenu"> <a href="/fr/resources/middleware.html">Français</a> </li> <li class="submenu"> <a href="/de/resources/middleware.html">Deutsch</a> </li> <li class="submenu"> <a href="/es/resources/middleware.html">Español</a> </li> <li class="submenu"> <a href="/it/resources/middleware.html">Italiano</a> </li> <li class="submenu"> <a href="/ja/resources/middleware.html">日本語</a> </li> <li class="submenu"> <a href="/ru/resources/middleware.html">Русский</a> </li> <li class="submenu"> <a href="/zh-cn/resources/middleware.html">中文 (简体)</a> </li> <li class="submenu"> <a href="/zh-tw/resources/middleware.html">繁體中文</a> </li> <li class="submenu"> <a href="/ko/resources/middleware.html">한국어</a> </li> <li class="submenu"> <a href="/pt-br/resources/middleware.html">Português</a> </li> <li class="submenu"> <a href="/sk/resources/middleware.html">Slovenčina</a> </li> <li class="submenu"> <a href="/uk/resources/middleware.html">Українська</a> </li> <li class="submenu"> <a href="/uz/resources/middleware.html">Oʻzbekcha</a> </li> <li class="submenu"> <a href="/tr/resources/middleware.html">Türkçe</a> </li> <li class="submenu"> <a href="/th/resources/middleware.html">ภาษาไทย</a> </li> <li class="submenu"> <a href="/id/resources/middleware.html">Indonesia</a> </li> </ul> </div> </div> </div> </header> <div id="overlay"></div> <div class="content flex-row-content"> <nav aria-labelledby="sidebar-heading"> <div class="toc-container"> <h3 id="sidebar-heading" class="toc-heading"><em>Middlewares</em></h3> <button id="menu-toggle" title="show express middlewares">Middlewares <span>►</span></button> <ul id="menu"> <ul id="side-menu" class="active"> <li><a href="/resources/middleware/body-parser.html">body-parser</a></li> <li><a href="/resources/middleware/compression.html">compression</a></li> <li><a href="/resources/middleware/connect-rid.html">connect-rid</a></li> <li><a href="/resources/middleware/cookie-parser.html">cookie-parser</a></li> <li><a href="/resources/middleware/cookie-session.html">cookie-session</a></li> <li><a href="/resources/middleware/cors.html">cors</a></li> <li><a href="/resources/middleware/errorhandler.html">errorhandler</a></li> <li><a href="/resources/middleware/method-override.html">method-override</a></li> <li><a href="/resources/middleware/morgan.html">morgan</a></li> <li><a href="/resources/middleware/multer.html">multer</a></li> <li><a href="/resources/middleware/response-time.html">response-time</a></li> <li><a href="/resources/middleware/serve-favicon.html">serve-favicon</a></li> <li><a href="/resources/middleware/serve-index.html">serve-index</a></li> <li><a href="/resources/middleware/serve-static.html">serve-static</a></li> <li><a href="/resources/middleware/session.html">session</a></li> <li><a href="/resources/middleware/timeout.html">timeout</a></li> <li><a href="/resources/middleware/vhost.html">vhost</a></li> </ul> </ul> </div> </nav> <main id="page-doc"> <h2 id="express-middleware">Express middleware</h2> <p>The Express middleware modules listed here are maintained by the <a href="https://github.com/orgs/expressjs/people">Expressjs team</a>.</p> <table> <thead> <tr> <th>Middleware module</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="/en/resources/middleware/body-parser.html">body-parser</a></td> <td>Parse HTTP request body.</td> </tr> <tr> <td><a href="/en/resources/middleware/compression.html">compression</a></td> <td>Compress HTTP responses.</td> </tr> <tr> <td><a href="/en/resources/middleware/connect-rid.html">connect-rid</a></td> <td>Generate unique request ID.</td> </tr> <tr> <td><a href="/en/resources/middleware/cookie-parser.html">cookie-parser</a></td> <td>Parse cookie header and populate <code class="language-plaintext highlighter-rouge">req.cookies</code>. See also <a href="https://github.com/jed/cookies">cookies</a>.</td> </tr> <tr> <td><a href="/en/resources/middleware/cookie-session.html">cookie-session</a></td> <td>Establish cookie-based sessions.</td> </tr> <tr> <td><a href="/en/resources/middleware/cors.html">cors</a></td> <td>Enable cross-origin resource sharing (CORS) with various options.</td> </tr> <tr> <td><a href="/en/resources/middleware/errorhandler.html">errorhandler</a></td> <td>Development error-handling/debugging.</td> </tr> <tr> <td><a href="/en/resources/middleware/method-override.html">method-override</a></td> <td>Override HTTP methods using header.</td> </tr> <tr> <td><a href="/en/resources/middleware/morgan.html">morgan</a></td> <td>HTTP request logger.</td> </tr> <tr> <td><a href="/en/resources/middleware/multer.html">multer</a></td> <td>Handle multi-part form data.</td> </tr> <tr> <td><a href="/en/resources/middleware/response-time.html">response-time</a></td> <td>Record HTTP response time.</td> </tr> <tr> <td><a href="/en/resources/middleware/serve-favicon.html">serve-favicon</a></td> <td>Serve a favicon.</td> </tr> <tr> <td><a href="/en/resources/middleware/serve-index.html">serve-index</a></td> <td>Serve directory listing for a given path.</td> </tr> <tr> <td><a href="/en/resources/middleware/serve-static.html">serve-static</a></td> <td>Serve static files.</td> </tr> <tr> <td><a href="/en/resources/middleware/session.html">session</a></td> <td>Establish server-based sessions (development only).</td> </tr> <tr> <td><a href="/en/resources/middleware/timeout.html">timeout</a></td> <td>Set a timeout perioHTTP request processing.</td> </tr> <tr> <td><a href="/en/resources/middleware/vhost.html">vhost</a></td> <td>Create virtual domains.</td> </tr> </tbody> </table> <h2 id="additional-middleware-modules">Additional middleware modules</h2> <p>These are some additional popular middleware modules.</p> <div class="doc-box doc-warn"> <p class="doc-title"><svg viewBox="0 0 24 24" width="24" height="24" fill="currentColor"><path d="M12 7C11.7348 7 11.4804 7.10536 11.2929 7.29289C11.1054 7.48043 11 7.73478 11 8V12C11 12.2652 11.1054 12.5196 11.2929 12.7071C11.4804 12.8946 11.7348 13 12 13C12.2652 13 12.5196 12.8946 12.7071 12.7071C12.8946 12.5196 13 12.2652 13 12V8C13 7.73478 12.8946 7.48043 12.7071 7.29289C12.5196 7.10536 12.2652 7 12 7ZM12 15C11.8022 15 11.6089 15.0586 11.4444 15.1685C11.28 15.2784 11.1518 15.4346 11.0761 15.6173C11.0004 15.8 10.9806 16.0011 11.0192 16.1951C11.0578 16.3891 11.153 16.5673 11.2929 16.7071C11.4327 16.847 11.6109 16.9422 11.8049 16.9808C11.9989 17.0194 12.2 16.9996 12.3827 16.9239C12.5654 16.8482 12.7216 16.72 12.8315 16.5556C12.9414 16.3911 13 16.1978 13 16C13 15.7348 12.8946 15.4804 12.7071 15.2929C12.5196 15.1054 12.2652 15 12 15ZM21.71 7.56L16.44 2.29C16.2484 2.10727 15.9948 2.00368 15.73 2H8.27C8.00523 2.00368 7.75163 2.10727 7.56 2.29L2.29 7.56C2.10727 7.75163 2.00368 8.00523 2 8.27V15.73C2.00368 15.9948 2.10727 16.2484 2.29 16.44L7.56 21.71C7.75163 21.8927 8.00523 21.9963 8.27 22H15.73C15.9948 21.9963 16.2484 21.8927 16.44 21.71L21.71 16.44C21.8927 16.2484 21.9963 15.9948 22 15.73V8.27C21.9963 8.00523 21.8927 7.75163 21.71 7.56ZM20 15.31L15.31 20H8.69L4 15.31V8.69L8.69 4H15.31L20 8.69V15.31Z"></path></svg> Warning</p> <p>This information refers to third-party sites, products, or modules that are not maintained by the Expressjs team. Listing here does not constitute an endorsement or recommendation from the Expressjs project team.</p> </div> <table> <thead> <tr> <th>Middleware module</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/helmetjs/helmet">helmet</a></td> <td>Helps secure your apps by setting various HTTP headers.</td> </tr> <tr> <td><a href="https://github.com/jaredhanson/passport">passport</a></td> <td>Authentication using “strategies” such as OAuth, OpenID and many others. See <a href="https://passportjs.org/">passportjs.org</a> for more information.</td> </tr> </tbody> </table> </main> </div> <a id="top" href="#" role="button" aria-label="go to top"><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>