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
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
|