Miss any of our Open RFC calls?Watch the recordings here! »

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

325

Version

0.11.0

License

ISC

Unpacked Size

11.7 kB

Total Files

7

Last publish

Collaborators

  • avatar
  • avatar
  • avatar