0.5.1 • Published 7 years ago

respondo v0.5.1

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

Respondo exposes some convenient methods on the res object of an express REST API, and adds some practical middleware for authentication.

Responders

app.use(respondo.responders());
res.success(payload, statusCode = 200);

// For example
res.success({ name: 'Darth Vader' }, 201);

// Result (HTTP Status Code 201)
{
	"success": true,
	"code": 201,
	"result": { "name": 'Darth Vader' }
}
res.failure(message, statusCode = 400);

// For example
res.failure('You are not authorized to do so!', 401);

// Result (HTTP Status Code 401)
{
	"success": true,
	"code": 401,
	"error": "You are not authorized to do so!"
}

Errors

Adds standard errors 404 and 500 to the stack, as a fall-through. It also wraps Mongo validation and index errors, and presents them in a more generic way.

When called, it takes a boolean whether we are in production mode. In production mode, any error details of a generic 500 error are hidden from the user. In development mode, it falls through.

app.use(respondo.errors(false));

Authorization middleware

Given the secret key, decodes a JSON web token set on the Authorizationheader. It sets an identity field on the req object containing properties user (the decoded payload) and authenticated (a boolean indicating if there is a user).

app.use(respondo.authorizationIdentity('ssshh!'));

// Sets the req.identity property
app.get('/', function(req, res) {
	if (!req.identity.authenticated) {
		return res.send('You are not authenticated');
	} else {
		return res.json(req.identity.user);
	}
});
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.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

8 years ago

0.1.0

8 years ago