« index
Coverage for /Users/yunong/workspace/node-restify/lib/plugins/query.js : 95%
45 lines |
43 run |
2 missing |
0 partial |
7 blocks |
6 blocks run |
1 blocks missing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | // Copyright 2012 Mark Cavage, Inc. All rights reserved. var qs = require('qs'); var url = require('url'); var assert = require('assert-plus'); /** * Returns a plugin that will parse the query string, and merge the results * into req.params. * * @return {Function} restify handler. * @throws {TypeError} on bad input */ function queryParser(options) { if (!options) options = {}; assert.object(options, 'options'); function parseQueryString(req, res, next) { if (!req.getQuery()) { req.query = {}; return (next()); } req.query = qs.parse(req.getQuery()); if (options.mapParams !== false) { Object.keys(req.query).forEach(function (k) { if (req.params[k] && !options.overrideParams) return (false); req.params[k] = req.query[k]; return (true); }); } return (next()); } return (parseQueryString); } module.exports = queryParser; |