0.41.9 • Published 5 years ago

lexpress v0.41.9

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

lexpress

Light Express framework for NodeJS.

The MIT License npm Travis David David

Description

Lexpress is a featherlight microframework based on Express providing a ready-to-use base controller inluding :

  • A JSON Schema validation for GET, POST, PUT and DELETE requests.
  • An easy-to-use cache middleware.
  • A clean JSON error response.

Typescript definitions are also included.

Getting Started

Installation

npm i lexpress

Basic Web & Api Example

index.ts

import { Lexpress } from 'lexpress'

import routes from './routes'

const lexpress = new Lexpress({
  routes,
  viewsEngine: 'pug',
  viewsPath: 'src/views'
})

lexpress.start()

src/routes.ts

import { Route } from 'lexpress'

import ApiHelloWorldController from './controllers/api/HelloYouController'
import WebHelloWorldController from './controllers/web/HelloYouController'

const routes: Route[] = [
  {
    path: '/:name',
    controller: WebHelloWorldController,
    method: 'get',
  },
  {
    path: '/api/hello',
    controller: ApiHelloWorldController,
    method: 'get',
  }
]

export default routes

src/controllers/api/HelloYouController.ts

import { BaseController } from 'lexpress'

export default class HelloYouController extends BaseController {
  public get() {
    const schema = {
      type: 'object',
      properties: {
        email: {
          type: 'string',
          minLength: 1,
        },
      },
      required: ['name'],
    }

    this.validateJsonSchema(schema, () => {
      this.res
        .status(200)
        // Let's keep this response in cache for 24h
        .cache(86400000)
        .json({
          message: `Hello ${this.req.query.name} !`,
          name: this.req.query.name,
        })
    })
  }
}

src/controllers/web/HelloYouController.ts

import { BaseController } from 'lexpress'

export default class HelloYouController extends BaseController {
  public get() {
    this.res
      // Let's keep this response in cache for 24h
      .cache(86400000)
      .render('hello-you', {
        name: this.req.params.name,
      })
  }
}

src/views/hello-you.pug

h1 Hello #{name} !

Licenses

FOSSA Status

0.41.9

5 years ago

0.41.8

5 years ago

0.41.7

5 years ago

0.41.6

5 years ago

0.41.5

5 years ago

0.41.4

5 years ago

0.41.3

5 years ago

0.41.2

5 years ago

0.41.1

5 years ago

0.41.0

5 years ago

0.40.0

5 years ago

0.39.6

6 years ago

0.39.5

6 years ago

0.39.4

6 years ago

0.39.3

6 years ago

0.39.2

6 years ago

0.39.1

6 years ago

0.39.0

6 years ago

0.38.1

6 years ago

0.38.0

6 years ago

0.37.0

6 years ago

0.36.0

6 years ago

0.35.3

6 years ago

0.35.2

6 years ago

0.35.1

6 years ago

0.35.0

6 years ago

0.34.3

6 years ago

0.34.2

6 years ago

0.34.1

6 years ago

0.34.0

6 years ago

0.33.1

6 years ago

0.33.0

6 years ago

0.32.0

6 years ago

0.31.2

6 years ago

0.31.1

6 years ago

0.31.0

6 years ago

0.30.2

6 years ago

0.30.1

6 years ago

0.30.0

6 years ago

0.29.0

6 years ago

0.28.1

6 years ago

0.28.0

6 years ago

0.27.0

6 years ago

0.26.0

6 years ago

0.25.0

6 years ago

0.24.1

6 years ago

0.24.0

6 years ago

0.23.1

6 years ago

0.23.0

6 years ago

0.22.4

6 years ago

0.22.3

6 years ago

0.22.2

6 years ago

0.22.1

6 years ago

0.22.0

6 years ago

0.21.6

6 years ago

0.21.5

6 years ago

0.21.4

6 years ago

0.21.3

6 years ago

0.21.2

6 years ago

0.21.1

6 years ago

0.21.0

6 years ago

0.20.0

6 years ago

0.19.2

6 years ago

0.19.1

6 years ago

0.19.0

6 years ago

0.18.0

6 years ago

0.17.3

6 years ago

0.17.1

6 years ago

0.17.0

6 years ago

0.16.0

6 years ago

0.15.1

6 years ago

0.15.0

6 years ago

0.14.0

6 years ago

0.13.1

6 years ago

0.13.0

6 years ago

0.12.0

6 years ago

0.11.4

6 years ago

0.11.3

6 years ago

0.11.2

6 years ago

0.11.1

6 years ago

0.11.0

6 years ago

0.10.0

6 years ago

0.9.1

6 years ago

0.9.0

6 years ago

0.8.5

7 years ago

0.8.4

7 years ago

0.8.3

7 years ago

0.8.2

7 years ago

0.8.1

7 years ago

0.8.0

7 years ago

0.6.5

7 years ago

0.6.4

7 years ago

0.6.3

7 years ago

0.6.2

7 years ago

0.6.1

7 years ago

0.6.0

7 years ago

0.5.5

7 years ago

0.5.4

7 years ago

0.5.3

7 years ago

0.5.2

7 years ago

0.5.1

7 years ago

0.5.0

7 years ago

0.4.1

7 years ago

0.4.0

7 years ago

0.3.0

7 years ago

0.2.4

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.1.0

7 years ago