|
|
/*! * express * Copyright(c) 2009-2013 TJ Holowaychuk * Copyright(c) 2013 Roman Shtylman * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed */
'use strict';
/** * Module dependencies. */
var parseUrl = require('parseurl'); var qs = require('qs');
/** * @param {Object} options * @return {Function} * @api public */
module.exports = function query(options) { var opts = Object.create(options || null); var queryparse = qs.parse;
if (typeof options === 'function') { queryparse = options; opts = undefined; }
if (opts !== undefined && opts.allowPrototypes === undefined) { // back-compat for qs module
opts.allowPrototypes = true; }
return function query(req, res, next){ if (!req.query) { var val = parseUrl(req).query; req.query = queryparse(val, opts); }
next(); }; };
|