#hof-behaviour-session
HOF Behaviour for reading and writing to the session
##Usage
###With mixwith.js
const mix = require('mixwith').mix;
const Session = require('hof-behaviour-session');
const BaseController = require('hof-form-controller');
class MyController extends mix(BaseController).with(Session) {
...
}
MyController
now extends hof-form-controller
and has hof-behaviour-session
functionality mixed in.
##Functionality
This mixin extends hof-form-controller
by persisting the form data to the sessionModel
- assuming the session-model middleware has been applied.
The following form controller methods are used:
getValues(req, res, cb)
- calls callback with null
and a map of all items in the sessionModel
, extended with errorValues
- to persist entered values on current step if validation failssaveValues(req, res, cb)
- Called on success. Sets all step fields in req.form.values
to the sessionModel, unsets errorValues
.getErrors(req)
- returns all errors for fields on the current step (req.form.options.fields
), excluding redirects. Set to req.form.errors
in hof-form-controller
.setErrors(err, req)
- called on validation error(s). Sets the current step field values as errorValues
in sessionModel to be used in getValues
. Sets errors
to sessionModel - a map of field-name: error
to be used in getErrors
.locals(req, res)
- Extends the result of super.locals
with baseUrl
(req.baseUrl
) and nextPage
(the result of this.getNextStep(req, res)
).missingPrereqHandler(req, res)
- Error handler called when a MISSING_PREREQ
error is thrown from the check-progress middleware. This occurs if a step is visited out of sequence. This error handler causes the user to be redirected to the last completed step, or the first step if none have been completed.errorHandler(err, req, res, next)
- checks if err.code
is MISSING_PREREQ
, if so calls missingPrereqHandler
, if not calls super
to hand over to parent error handler.