An enhanced HTTP(S) Server for Node.js.
It uses a pure request handler
instead of the traditional
Nodejs request handler
$ npm add @aldojs/http
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
}
}
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>;
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>;
}