stdm
v0.0.4
Published
Standard Middleware for Express
Downloads
1
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' )
, /* ... */
);