You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.3 KiB

4 years ago
'use strict'
const { kFourOhFourContext, kReplySerializerDefault } = require('./symbols.js')
// Objects that holds the context of every request
// Every route holds an instance of this object.
function Context (schema, handler, Reply, Request, contentTypeParser, config, errorHandler, bodyLimit, logLevel, logSerializers, attachValidation, replySerializer) {
this.schema = schema
this.handler = handler
this.Reply = Reply
this.Request = Request
this.contentTypeParser = contentTypeParser
this.onRequest = null
this.onSend = null
this.onError = null
this.preHandler = null
this.onResponse = null
this.config = config
this.errorHandler = errorHandler || defaultErrorHandler
this._middie = null
this._parserOptions = { limit: bodyLimit || null }
this.logLevel = logLevel
this.logSerializers = logSerializers
this[kFourOhFourContext] = null
this.attachValidation = attachValidation
this[kReplySerializerDefault] = replySerializer
}
function defaultErrorHandler (error, request, reply) {
var res = reply.res
if (res.statusCode >= 500) {
reply.log.error({ req: reply.request.raw, res: res, err: error }, error && error.message)
} else if (res.statusCode >= 400) {
reply.log.info({ res: res, err: error }, error && error.message)
}
reply.send(error)
}
module.exports = Context