express-autumn
v1.0.0
Published
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.
Downloads
4
Readme
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