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
.
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