Skip to content

jrf0110/stdm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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' )
, /* ... */
);

About

Standard Middleware for Express

Resources

Stars

Watchers

Forks

Packages

No packages published