Nostalgic Punchcard Missing

    http-server-plus

    0.11.0 • Public • Published

    http-server-plus

    Package Version Build Status PackagePhobia Latest Commit

    Augmented http.Server, HTTP/HTTPS/HTTP2 and multiple ports on the same instance

    Install

    Installation of the npm package:

    npm install --save http-server-plus
    

    Example

    // The `create()` method can also take a `requestListener`, just like
    // `http.createServer()`.
    var app = require("express")();
    var server = require("http-server-plus").create(app);
     
    // The listen method returns a promise which resolves when the server
    // starts listening.
    require("bluebird")
      .all([
        // Listen on port localhost:80.
        server.listen({
          hostname: "localhost",
          port: 80,
        }),
     
        // Listen on port 443, using HTTPS.
        server.listen({
          port: 443,
     
          cert: require("fs").readFileSync(__dirname + "/certificate.pem"),
          key: require("fs").readFileSync(__dirname + "/private_key.pem"),
        }),
     
        // Listen on socket.
        server.listen({
          socket: __dirname + "/http.sock",
        }),
     
        // Listen on file descriptor (with systemd for instance).
        server.listen({
          fd: 3,
        }),
     
        // Listen on a socket created by systemd.
        server.listen({
          systemdSocket: 0, // this is a socket index
        }),
      ])
      .then(function(niceAddresses) {
        console.log("server is listening on", niceAddresses);
      })
      .catch(function(error) {
        console.error("The server could not listen on", error.niceAddress);
      });

    Using ES2016's async functions:

    import createExpressApp from "express";
    import { create } from "http-server-plus";
     
    async function main() {
      const app = createExpressApp();
     
      // The `create()` method can also take a `requestListener`, just
      // like `http.createServer()`.
      const server = create(app);
     
      try {
        // The listen method returns a promise which resolves when the server
        // starts listening.
        const niceAddresses = await Promise.all([
          // Listen on port localhost:80.
          server.listen({
            hostname: "localhost",
            port: 80,
          }),
     
          // Listen on port 443, using HTTPS.
          server.listen({
            port: 443,
     
            cert: require("fs").readFileSync(__dirname + "/certificate.pem"),
            key: require("fs").readFileSync(__dirname + "/private_key.pem"),
          }),
     
          // Listen on socket.
          server.listen({
            socket: __dirname + "/http.sock",
          }),
        ]);
     
        console.log("the server is listening on", niceAdresses);
      } catch (error) {
        console.error("the server could not listen on", error.niceAddress);
      }
    }

    Using HTTP/2 for Node >= 8:

    var server = require("http-server-plus").create(
      {
        createSecureServer: require("http2").createSecureServer,
      },
      app
    );

    To enable HTTP/2 for Node < 8, you need to install spdy:

    npm install --save spdy
    

    And:

    var server = require("http-server-plus").create(
      {
        createSecureServer: require("spdy").createServer,
      },
      app
    );

    Contributions

    Contributions are very welcomed, either on the documentation or on the code.

    You may:

    • report any issue you've encountered;
    • fork and create a pull request.

    License

    ISC © Julien Fontanet

    Install

    npm i http-server-plus

    DownloadsWeekly Downloads

    470

    Version

    0.11.0

    License

    ISC

    Unpacked Size

    11.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • julien-f
    • marsaud
    • pdonias