bricks
Version:
Bricks Application Server
44 lines (35 loc) • 1.15 kB
JavaScript
(function () {
var url = require('url'),
qs = require('querystring');
exports.meta = {
name: 'request handler',
description: 'Naive request augmentation plugin'
};
exports.plugin = function (request, response, options) {
var parsed = url.parse(request.url, true);
request.query = parsed.query;
request.search = parsed.search;
request.hash = parsed.hash;
request.param = function (key, value) {
if (value !== undefined) {
this.query[key] = value;
return this;
} else {
return this.query[key];
}
};
if (request.method === 'POST' || request.method === 'PUT') {
var body = '';
request.on('data', function (data) {
body += data;
});
request.on('end', function () {
request.query = qs.parse(body);
request.body = body;
response.next();
});
} else {
response.next();
}
};
})();