1.1.1 • Published 1 year ago

@tonoid/express v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@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

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

2 years ago

0.0.20

2 years ago

0.0.21

2 years ago

0.0.19

2 years ago

0.0.18

3 years ago

0.0.17

4 years ago

0.0.14

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.13

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago