5.0.0 • Published 9 months ago

@autofleet/super-express v5.0.0

Weekly downloads
390
License
MIT
Repository
github
Last release
9 months ago

SuperExpress

SuperExpress is an enhanced Express.js server application with built-in middleware for logging, security, health checks, and more. This project aims to provide a ready-to-use Express.js server setup with configurable options.

Features

  • Logging: Uses Morgan for HTTP request logging.
  • Security: Adds various security headers.
  • Body Parsing: Configurable body parser with a high payload limit.
  • Health Checks: An endpoint to check if the server is alive.
  • Stats Endpoint: Provides server and application statistics.
  • Tracing: Supports request tracing.

Installation

To install the dependencies, run:

npm install

Usage

Importing and Initializing

To use SuperExpress, you need to import and initialize it in your application:

import createSuperExpressApp from './index.js';

const options = {
    bodyParser: true,
    helmet: true,
    morgan: true,
    nitur: true,
    stats: true,
    packageJsonPath: './package.json',
    tracing: true,
    eagerLoadUserPermissions: true,
    aliveEndpointOptions: { customOption: 'value' }
};

const app = await createSuperExpressApp(options);

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

Options

You can customize the behavior of SuperExpress by passing an options object:

  • bodyParser (boolean): Enables or disables the body parser middleware.
  • helmet (boolean): Enables or disables security headers.
  • morgan (boolean): Enables or disables HTTP request logging.
  • nitur (boolean): Enables or disables the alive endpoint.
  • stats (boolean): Enables or disables the stats endpoint.
  • packageJsonPath (string): Path to the package.json file for the stats endpoint.
  • tracing (boolean): Enables or disables request tracing.
  • eagerLoadUserPermissions (boolean): Enables or disables eager loading of user permissions for tracing middleware.
  • aliveEndpointOptions (object): Options to customize the alive endpoint.

Endpoints

Alive Endpoint

  • Path: /alive
  • Method: GET
  • Description: Checks if the server is alive.

Stats Endpoint

  • Path: /
  • Method: GET
  • Description: Provides server and application statistics.

Tests

This project uses Node.js's built-in test runner for testing. To run the tests, execute:

node --test index.test.js

Example

Here's an example of how to set up and run the server:

import createSuperExpressApp from './index.js';

const options = {
    bodyParser: true,
    helmet: true,
    morgan: true,
    nitur: true,
    stats: true,
    packageJsonPath: './package.json',
    tracing: true,
    eagerLoadUserPermissions: true,
    aliveEndpointOptions: { customOption: 'value' }
};

const app = await createSuperExpressApp(options);

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

Contributing

Feel free to submit issues or pull requests. Contributions are welcome!

License

This project is licensed under the MIT License.

5.0.0

9 months ago

2.2.0

11 months ago

2.1.0

11 months ago

2.0.0

11 months ago

3.0.0

11 months ago

4.1.0

11 months ago

4.0.0

11 months ago

1.1.19-beta-1

4 years ago

1.1.21-beta-4

4 years ago

1.1.21-beta-3

4 years ago

1.1.21-beta-2

4 years ago

1.1.20

4 years ago

1.1.19

6 years ago

1.1.18

6 years ago

1.1.17

6 years ago

1.1.16

7 years ago

1.1.15

7 years ago

1.1.12

7 years ago

1.1.11

7 years ago

1.1.10

7 years ago

1.1.9

7 years ago

1.1.8

7 years ago

1.1.7

7 years ago

1.1.6

7 years ago