Express plugin for @tonoid/helpers
npm install @tonoid/express!npm !npm !npm !David

Express plugin for @tonoid/helpers
- port: (Number, defaults: process.env.EXPRESS_PORT || process.env.PORT || 80) Express http port.
- host: (String, defaults: process.env.EXPRESS_HOST || '0.0.0.0) Express http host.
- extraFirstMiddlewares(app, { express }): (Function) Extra Middle to add just after the express initilization
- extraMiddlewaresAfterEndpoint(app, { express }): (Function) Extra Middle to add to the express app after endpoints
- extraMiddlewaresAfterNotFound(app, { express }): (Function) Extra Middle to add to the express app after handling 404
- extraMiddlewaresAfterError(app, { express }): (Function) Extra Middle to add to the express app after handling error
- notFoundHandler(isHTML)(res, req): (Function) Page not found handler
- isHTML: (Boolean, default: false) If the error message should render in HTML
- jsonLog: (Boolean, default: process.env.NODE_ENV === 'production) If we want to output the logs in JSON format (useful when we use Stackdriver)
- endpoints: (defaults: []):
- endpoints[].path: Endpoint path
- endpoints[].handler: Endpoint handler (function)
- rawBodyEndpoints: (defaults: []): List of endpoints that need raw body (useful for stripe webhook, or file uploads)
- enableJsonBody: (default: true)
- enableFormBody: (default: true)
- enableCookies: (default: true)
- enableHealth: (default: true)
- enableCompression: (default: true)
- removeTrailingSlashes: (default: true)
- timeout: (default: 90s)
- EXPRESS_HOST: (default: 0.0.0.0) HTTP host
- EXPRESS_PORT: (default: 80) HTTP port
- EXPRESS_RAW_LIMIT: (default: 50mb) Limit for raw body parser
- EXPRESS_JSON_LIMIT: (default: 10mb) Limit for json body parser
- EXPRESS_BODY_LIMIT: (default: 10mb) Limit for body body parser
- EXPRESS_TIMEOUT: (default: 90s) Timeout to answer
- .close(): Close mongo client
- .app: Express app instance
- .httpServer: http server instance
- .getRouter(): Get database instance
- .throwError(): Throw an error with errorCode (HTTP code)
- .app: Express app instance
- .asyncHandler(): Async handler alias
You may check a full example on the folder example.
``js
const { init } = require('@tonoid/helpers');
const express = require('@tonoid/express');
const rootHandler = ({ getRouter, asyncHandler }) => {
const router = getRouter();
router.get('/', asyncHandler((req, res) => {
return { root: true };
}));
router.get('/foo', asyncHandler((req, res) => {
return { foo: true };
}));
return router;
};
init([
express({
port: 3000,
endpoints: [
{
path: '/',
handler: rootHandler,
},
],
}),
]);
``
This module is maintained by Simo Elalj @tonoid