@tonoid/express

1.1.1 • Public • Published

@tonoid/express

npm npm npm David GitHub stars

Express plugin for @tonoid/helpers

Init options

  • 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)

Environment variables

  • 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

Exported context attributes

  • .close(): Close mongo client
  • .app: Express app instance
  • .httpServer: http server instance

Handler available parameters

  • .getRouter(): Get database instance
  • .throwError(): Throw an error with errorCode (HTTP code)
  • .app: Express app instance
  • .asyncHandler(): Async handler alias

Usage example

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,
      },
    ],
  }),
]);

Credits

This module is maintained by Simo Elalj @tonoid

Package Sidebar

Install

npm i @tonoid/express

Weekly Downloads

2

Version

1.1.1

License

MIT

Unpacked Size

15 kB

Total Files

6

Last publish

Collaborators

  • melalj