req.options
req.options
allows altering of (or providing defaults for) request parameters without modifying the original object.
Any properties provided in a custom route configuration are made available in the req.options
object. For example, given the following in config/routes.js
:
"GET /foo": {controller: 'user', action: 'myAction', owl: 'hoot'}
req.options.controller
, req.options.action
and req.options.owl
will all be available.
Additionally, several special req.options
objects are available for use with blueprints, specifically to programatically change the criteria and/or values that a blueprint action uses when accessing a data store. These are best used in policies to, for example, filter requested records based on the logged-in user.
Example
In a config/policies/filterByUser.js
policy:
module.exports = function filterByUser (req, res, next) {
if (req.session.user) {
req.options.where = req.options.where || {};
req.options.where.userId = req.session.user.id;
}
return next();
}