express-autumn
Autumn is a wrapper for Express that eliminates some boilerplate code. By using decorators on class methods, you are able to define the route and have passport JWT wrap the endpoint.
Last updated 5 months ago by jjkahrs .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install express-autumn 
SYNC missed versions from official npm registry.

express-autumn

Autumn is a wrapper for Express that eliminates some boilerplate code. By using decorators on class methods, you are able to define the route and have passport JWT wrap the endpoint.

Getting Started

First create a launcher class that extends AutumnApp and then use the @appConfig decorator to pass the settings.

import bodyParser from "body-parser";
import cors from "cors";
import autumn from 'express-autumn';

@autumn.appConfig({ 
    port: 8000,
    searchPaths: ['./src/users'],
    jwtSecret: process.env.secret || 'JWT_SECRET'
})
class Main extends autumn.AutumnApp {
    preRoute = (app) => {
        var corsOptions = {
            methods: ['GET','PUT','POST','DELETE','PATCH','OPTIONS'],
            allowedHeaders: ['Content-Type', 'Authorization']
          };
        app.use(cors(corsOptions));
        
        app.use(bodyParser.json());
        app.use(bodyParser.urlencoded({ extended: true }));                
    }

    postRoute = (app) => {
        app.get('/', (req, res) => {
            res.send('Invalid endpoint!');
        });
        
        app.use(function(error,req,res,next){
          console.log("ERROR: "+error,error.stack);
          res.status(500).end();
        });        
    }
}

const main = new Main();
main.start();

The settings passed to @appConfig are:

  • port : The port number express will be launched on
  • searchPaths : This is an array of paths that Autumn will search through for endpoints
  • jwtSecret : The secret string that passport uses for JWT.

To define endpoints, create a class and then decorate the methods you want exposed.

import autumn from 'express-autumn';

class UserEndpoint {

    @autumn.endpoint('/login','get',true)
    logMeIn(req,res,next) {
        console.log('logMeIn');
        res.status(200).end();
    }
}

export default UserEndpoint;

The method will be passed the standard request, response, next parameters from express. The parameters for the endpoint decorator are:

  • The URI path for the endpoint
  • The supported request method. Valid values are : 'get', 'post', 'delete', or 'put'
  • Authentication flag. If true, Autumn will wrap the endpoint with passport jwt

Current Tags

  • 1.0.0                                ...           latest (5 months ago)

1 Versions

  • 1.0.0                                ...           5 months ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 2
Dependencies (12)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |