citizen
Version:
Node.js MVC web application framework. Includes routing, serving, caching, session management, and other helpful tools.
52 lines (38 loc) • 2.08 kB
JavaScript
// request event hooks
// citizen
import helpers from '../helpers.js'
const start = async (params, request, response, context) => {
helpers.log({
label : 'Requested: ' + params.route.url + ' | Remote host: ' + request.remoteAddress + ' | User agent: "' + request.headers['user-agent'] + '"',
divider : { top: CTZN.config.citizen.mode === 'development' ? true : false }
})
// Fire the app's request start hook
if ( CTZN.controllers.hooks.request?.start ) {
context = helpers.extend(context, await CTZN.controllers.hooks.request.start(params, request, response, context))
}
return context
}
const end = async (params, request, response, context) => {
// Log the request parameters for debugging
if ( CTZN.config.citizen.mode === 'development' ) {
let logContent = {}
CTZN.config.citizen.development.debug.scope.config ? logContent.config = params.config : false
CTZN.config.citizen.development.debug.scope.cookie ? logContent.cookie = params.cookie : false
CTZN.config.citizen.development.debug.scope.form ? logContent.form = params.form : false
CTZN.config.citizen.development.debug.scope.payload ? logContent.payload = params.payload : false
CTZN.config.citizen.development.debug.scope.route ? logContent.route = params.route : false
CTZN.config.citizen.development.debug.scope.session ? logContent.session = params.session : false
CTZN.config.citizen.development.debug.scope.url ? logContent.url = params.url : false
helpers.log({
label : 'Request parameters: ' + params.route.url + ' | Remote host: ' + request.remoteAddress + ' | User agent: "' + request.headers['user-agent'] + '"',
content : logContent,
// divider : { top: CTZN.config.citizen.mode === 'development' ? true : false }
})
}
// Fire the app's request end hook
if ( CTZN.controllers.hooks.request?.end ) {
context = helpers.extend(context, await CTZN.controllers.hooks.request.end(params, request, response, context))
}
return context
}
export default { start, end }