JSPM

http2-express

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5157
  • Score
    100M100P100Q122853F
  • License MIT

HTTP/2 support for Express

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (http2-express) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    http2-express

    This package adds HTTP/2 support to express.js applications.

    Version 1.1.0 adds support for EXPRESS 5. grainrigi was able to make the changes necessary to support EXPRESS 5. This version is also backward compatible with Express 4.

    NOTICE: This package is fully compatible with the old http2-express-bridge. You should be able to replace the old package http2-express-bridge with this new one ("http2-express") without changing anything in your code, except the package name in the import (see usage below).

    Version 1.0.1 fixes an issue with h2c (running HTTP/2 without TLS) as reported by rickardkarlsson. You should now be able to create a non https server (http2.createServer.....) without any issues.

    Installation

    npm i http2-express

    Notice: It is recommended to use Node.js version 19 or higher.

    Usage

    const express = require('express');
    const http2 = require('http2');
    const http2Express = require('http2-express');
    const fs = require('fs');
    
    const app = http2Express(express);
    
    app.get('/', (req, res) => {
      res.send('Hello World!');
    });
    
    const options = {
      key: fs.readFileSync('path to your certificate key'),
      cert: fs.readFileSync('path to your certificate'),
      passphrase: 'your certificate passphrase',
      allowHTTP1: false
    };
    
    const server = http2.createSecureServer(options, app);
    
    server.listen(44320, () => {
      console.info('Listening on port 44320...');
    });
    

    The code above creates an HTTP/2 server. An HTTP/2 server performs better than the older HTTP/1.1.

    Notice: If option property "allowHTTP1" is set to true, then your server will be backward compatible with HTTP/1.1. If false, then only the new HTTP/2 is supported. Browsers and HTTP Clients that don't support HTTP/2 will error out if "allowHTTP1" is false.

    ESModule "import" syntax is also supported.

    NOTICE: While the old http2-express-bridge provided support for Server Push, this package does not support Server Push because all major browsers and HTTP/2 Clients no longer support it. For example, Server Push has been disable in Chrome since version 106. The reason behind it is that Server Push did not provide significant performance gains, and in many cases, the performance actually decreased.