stdm
v0.0.4
Published
Standard Middleware for Express
Downloads
11
Maintainers
Readme
Standard Middleware for Express
I'm sure there are other implementations, but here's mine.
Docs
So there is no ambiguity in the API, all middleware is returned via a function call. Even though some do not require configuration, app.use( stdm.error() )
, I adopt this convention so there is never any doubt on how to obtain the value.
stdm.error()
Attaches an error function to the response
object. Uses the statusCode
property as a status code. If there are other properties, it will send them along in the response body on a field called error
. If the error passed in is existentially false, then stdm sends a 500. If the error is a number, we only send that number as the status code.
Example
app.use( stdm.error() );
/* ... */
app.get( '/users', function( req, res, next){
if ( req.someCondition ){
res.error({
name: 'INVALID_READ_PERMISSION'
, statusCode: 403
, message: 'You do not have sufficient permissions to use this resource'
});
}
}, /* ... */);
Response
{
error: {
name: 'INVALID_READ_PERMISSION'
, statusCode: 403
, message: 'You do not have sufficient permissions to use this resource'
}
}
stdm.log( arg1, arg2, ...)
Returns a middleware function that will console.log
the arguments passed to stdm.log
when the middleware function is called.
Example
app.get( '/users'
, stdm.log( "Experimental middleware:" )
, function( req, res, next ){ /* experimental middleware */ }
, stdm.log( "Experimental middleware COMPLETE!" )
, /* ... */
);
stdm.logReq( arg1, arg2, ...)
Returns a middleware function that will log properties on the request object whose names match the arguments passed to stdm.logReq
.
Example
app.get( '/users'
, stdm.log( "User:" )
, stdm.reqLog( 'user' )
, /* ... */
);