An addon/plugin package to provide BugSnag error reporting services in AdonisJS 4.0+
Install from the NPM Registry using the Adonis command so that all post-install instructions are run
$ adonis install adonisjs-bugsnag
$ adonis make:ehandler
Format the Exceptions/Handler.js file for an AdonisJS application to look like this
const BaseExceptionHandler = use('BaseExceptionHandler')
const bugsnag = use('BugSnag')
/**
* This class handles all exceptions thrown during
* the HTTP request lifecycle.
*
* @class ExceptionHandler
*/
class ExceptionHandler extends BaseExceptionHandler {
/**
* Handle exception thrown during the HTTP lifecycle
*
* @method handle
*
* @param {Object} error
* @param {Object} options.request
* @param {Object} options.response
*
* @return {void}
*/
async handle(error, { request, response }) {
if (error.code === 'EBADCSRFTOKEN') {
response.forbidden('Cannot process request because this page expired!')
return
}
response.status(error.status).send(error.message)
}
/**
* Report exception for logging or debugging.
*
* @method report
*
* @param {Object} error
* @param {Object} options.request
*
* @return {void}
*/
async report(error, { request }) {
let metaData = {
headers: request.headers(),
format: request.format(),
body: request.hasBody() ? request.post() : {},
query: request.get(),
method: request.method().toLowerCase()
};
metaData[(metaData.method == "get" ? "querystring" : "entity_body")] = request.all()
await bugsnag.notify(error, request, metaData)
}
}
module.exports = ExceptionHandler
MIT
npm i
npm run lint
npm run test
See the CONTRIBUTING.md file for info