Skip to content
/ http Public

Enhanced HTTP(S) `Server` for Node.js

License

Notifications You must be signed in to change notification settings

aldojs/http

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An enhanced HTTP(S) Server for Node.js. It uses a pure request handler instead of the traditional Nodejs request handler

Install

$ npm add @aldojs/http

Server

To create HTTP or HTTPS servers, you may use the function createServer.

const { readFileSync } = require('fs');

declare function createServer (options: Options, fn: RequestHandler): Server;
declare function createServer (fn: RequestHandler): Server;
declare function createServer (options: Options): Server;
declare function createServer (): Server;

declare interface Options {
  tls?: {
    key: readFileSync('path/to/key/file.pem'),
    cert: readFileSync('path/to/cert/file.pem')

    // see `https.createServer()` for more options to create secure servers
  }
}

Request handler

The request event handler could be a common or an async function. It's a pure function to replace the traditional handler

declare type RequestHandler = (request: http.IncomingMessage, response: http.ServerResponse) => void;

Each handler will receive the http.IncomingMessage object as a request, and should return a Response object.

declare type RequestHandler = (request: http.IncomingMessage) => Response | Promise<Response>;

Response

The returned response object should have a send method to configure and finalize the http.ServerResponse

import { ServerResponse } from 'http';

declare interface Response {
  send (res: ServerResponse): void | Promise<void>;
}