1.2.0 • Published 2 years ago

nut-ioc-express v1.2.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

nut-ioc-express

nut-ioc-express uses Express Framework to host endpoints in OpenAPI or Swagger document.

nut-ioc-express is used by nut-ioc npm package.

Environment Variables with default values

Environment Variables with default values

  • HOST=0.0.0.0
  • PORT=3000
  • APP_LOGGER=consoleLogger
  • CORS_ORIGINS=*
  • REQUEST_BUILDER=swaggerV3RequestBuilder
  • OPEN_API_UI_BASE_PATH=/api-docs
  • REQUEST_BODY_SIZE=100kb
  • HTTP_ENABLED=true
  • HTTPS_ENABLED=false
  • HTTPS_PORT=443
  • HTTPS_KEY_FILE=key.pem
  • HTTPS_CERT_FILE=cert.pem
  • HELMET_OPTIONS_FILE=

Helmet Options

To enable helmet, helmet options json file path must be set as HELMET_OPTIONS_FILE environment variable.
For Example: 
    HELMET_OPTIONS_FILE=./src/configs/helmetOptions.json    

Example

Auth0 usage is in the following example, notice that expressRouteMiddleware.use is called for every route invocation so that we can add new middleware for some paths.

require('dotenv').config();

const jwt = require('express-jwt');

const jwksRsa = require('jwks-rsa');

const { getNutIocContainer } = require('./nut-ioc-container-configurations');

const nutIocContainer = getNutIocContainer();

const { AUTHO_DOMAIN, AUTHO_AUDIENCE } = process.env;

const checkJwt = jwt({
    secret: jwksRsa.expressJwtSecret({
        cache: true,
        rateLimit: true,
        jwksRequestsPerMinute: 5,
        jwksUri: `${AUTHO_DOMAIN}.well-known/jwks.json`
    }),

    // Validate the audience and the issuer.
    audience: AUTHO_AUDIENCE,
    issuer: AUTHO_DOMAIN,
    algorithms: ['RS256']
});

const mainAsync = async () => {
    const { expressServer } = await nutIocContainer.build();

    const { expressRouteMiddleware } = await expressServer.configProvider;

    expressRouteMiddleware.use((req, res, next) => {

        res.set('Cache-Control', 'no-store, max-age=0');

        const { security } = req.swaggerPathDefinition;

        if (security && security.length > 0) {
            checkJwt(req, res, next);
        }
    });

    await expressServer.start({});
};

mainAsync();
1.2.0

2 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.1

3 years ago

1.1.2

3 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago