| |
| |
| |
| |
| |
| |
| |
| |
| 'use strict'; |
|
|
| |
| |
| |
|
|
| var merge = require('utils-merge') |
| var parseUrl = require('parseurl'); |
| var qs = require('qs'); |
|
|
| |
| |
| |
| |
| |
|
|
| module.exports = function query(options) { |
| var opts = merge({}, options) |
| var queryparse = qs.parse; |
|
|
| if (typeof options === 'function') { |
| queryparse = options; |
| opts = undefined; |
| } |
|
|
| if (opts !== undefined && opts.allowPrototypes === undefined) { |
| |
| opts.allowPrototypes = true; |
| } |
|
|
| return function query(req, res, next){ |
| if (!req.query) { |
| var val = parseUrl(req).query; |
| req.query = queryparse(val, opts); |
| } |
|
|
| next(); |
| }; |
| }; |
|
|