an http.Server request handler for express that handles IncomingMessage errors
an http.Server request handler for express that handles IncomingMessage errors
it expects the following:
* req is an object
* req.headers exists
* req.connection exists
* res is an object
* res.get is a function
* res.send is a function
it implements the following:
* creates an error object containing the following properties
``javascript``
{
error: {
body: req.body || null,
code: err.code || null,
date: new Date(),
errorCode: err.errorCode || null,
headers: req.headers || null,
message: err.toString() || null,
method: req.method || null,
originalUrl: req.originalUrl || null,
remoteAddress: req.headers[ 'x-forwarded-for' ] || req.headers[ 'x-real-ip' ] || req.connection.remoteAddress || null,
session: req.session || null,
status: err.status || null,
statusCode: err.statusCode || 500
}
}statusCode
* adds the error to res as res.statusCodeconsole.error
* logs the error object to err.stack
* logs the to console.error if the error.statusCode is not equal to 404content-type
* creates a message format based on the current request and server environmentcontent-type
* when the response is application/json`
javascriptNODE_ENV
error: {
code: err.code || null,
errorCode: err.errorCode || null,
message: err.toString(),
status: err.status || null,
statusCode: err.statusCode || 500
}
* when is set to development and content-type is not application/jsonerr.stack
* the err.message
* otherwise the
bash
npm install http-server-request-handlers-error-logger
`api
`javascript
/*
* @param {Error} err
* @param {number} err.status
* @param {number} err.statusCode
*
* @param {IncomingMessage} req
*
* @param {ServerResponse} res
* @param {Function} res.send
*
* @returns {undefined}
*/
function errorLogger( err, req, res )
`use
`javascript
var express = require( 'express' );
var app = express();
var errorLogger = require( 'http-server-request-handlers-error-logger' );// ... middleware declarations
// ... route declarations
app.use( errorLogger );
``[coveralls-image]: https://coveralls.io/repos/github/http-server-request-handlers/error-logger/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/github/http-server-request-handlers/error-logger?branch=master
[mit-license]: https://raw.githubusercontent.com/http-server-request-handlers/error-logger/master/license.txt
[npm-image]: https://img.shields.io/npm/v/http-server-request-handlers-error-logger.svg
[npm-url]: https://www.npmjs.com/package/http-server-request-handlers-error-logger
[nsp-image]: https://nodesecurity.io/orgs/http-server-request-handlers/projects/8ae93619-529e-4b44-8709-9e545c4bf9eb/badge
[nsp-url]: https://nodesecurity.io/orgs/http-server-request-handlers/projects/8ae93619-529e-4b44-8709-9e545c4bf9eb
[travis-image]: https://travis-ci.org/http-server-request-handlers/error-logger.svg?branch=master
[travis-url]: https://travis-ci.org/http-server-request-handlers/error-logger