rc@73: /** rc@73: * Module dependencies. rc@73: */ rc@73: rc@73: var qs = require('qs'); rc@73: var parseUrl = require('parseurl'); rc@73: rc@73: /** rc@73: * Query: rc@73: * rc@73: * Automatically parse the query-string when available, rc@73: * populating the `req.query` object using rc@73: * [qs](https://github.com/visionmedia/node-querystring). rc@73: * rc@73: * Examples: rc@73: * rc@73: * .use(connect.query()) rc@73: * .use(function(req, res){ rc@73: * res.end(JSON.stringify(req.query)); rc@73: * }); rc@73: * rc@73: * The `options` passed are provided to qs.parse function. rc@73: * rc@73: * @param {Object} options rc@73: * @return {Function} rc@73: * @api public rc@73: */ rc@73: rc@73: module.exports = function query(options){ rc@73: return function query(req, res, next){ rc@73: if (!req.query) { rc@73: req.query = ~req.url.indexOf('?') rc@73: ? qs.parse(parseUrl(req).query, options) rc@73: : {}; rc@73: } rc@73: rc@73: next(); rc@73: }; rc@73: };