Skip to content

boo1ean/app-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

app-controller

Part of app helpers project.

Simplify express route handlers.
Aggregate request params into single object (params, body, query).
Takes care of response sending.
Works with promises.
You only need to return value from route handler.

Installation

npm install app-controller

Usage

var app = require('express')();
var controller = require('app-controller');
var bodyParser = require('body-parser');
var Promise = require('bluebird');

app.use(bodyParser());

// Response body will be json array -> [1, 2, 3]
app.get('/numbers', controller(function(params, req) {
	return [1,2,3];
}));

// Same with promise -> [1, 2, 3]
app.get('/numbers', controller(function(params, req) {
	return Promise.resolve([1,2,3]);
}));

// Use params
// GET /numbers?pivot=2 -> [3]
app.get('/numbers', controller(function(params, req) {
	return [1, 2, 3].filter(function(n) {
		return n > params.pivot;
	});
}));

// POST /login
// Request body:
// username: johny
// password: qwerty
app.post('/login', controller(function(params, req) {
	return someAsyncAuthChecker(params.username, params.password).then(function() {
		return { success: true };
	});
}));

// And so on..

License

MIT

About

App http response helper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published