UNPKG

strong-params

Version:

Rails-style strong parameters for javascript projects. (e.g. Express, Koa)

65 lines (51 loc) 1.16 kB
var _ = require('lodash') var Parameters = require('../parameters') /** * Express middleware for strong params. * * @return {generator} * @api public */ module.exports = function () { return function (req, res, next) { /** * Params data. */ var _params /** * Params `getter` and `setter`. */ Object.defineProperty(req, 'parameters', { /** * Returns an extended data object of merged context params. * * @return {object} * @api public */ get: function () { return _params.clone() }, /** * Replaces the default params data. * * @param {object} * @api public */ set: function (o) { _params = Parameters(o) } }) /* * Populating params. * * NOTE: Use the `koa-qs` module to enable nested query string objects. To * enable body params, which are usually received over `post` or `put` * method, use `koa-bodyparser` middleware. */ req.parameters = _.merge({}, req.body, req.query, req.params) /* * Next middleware. */ next() } }