As @MrVinz writes in his answer, policies are a great way to accomplish this. However, altering req.body
or req.query
isn't recommended, because you might want access to their original values. Instead, you can use req.options.values
to provide defaults for blueprint values. For example, to default the name
value to a logged-in user's name, you could create a policy similar to:
module.exports = function defaultNamePolicy (req, res, next) {
// Make sure req.options.values is an object, and don't overwrite
// values from prior policies
req.options.values = req.options.values || {};
// If there's a logged in user, default to using their name.
// Otherwise this will be undefined and will have no effect
req.options.values.name = req.session.user && req.session.user.name
return next();
}
The values in req.options.values
are used as defaults for the request, so if req.param('name')
exists, it will be used instead of req.options.values.name
.