/* * Adds req.cookie */ function cookies(req, res, cb) { req.cookies = {}; if (!req.headers.cookie) return cb(); req.headers.cookie.split(/;\s+/).forEach(cookie => { var parts = cookie.split("="); req.cookies[parts.shift()] = parts.join("="); }); cb(); } /* * Adds req.params from URL parameters */ function params(req, res, cb) { req.params = {}; if (!req.urlobj.query) return cb(); req.urlobj.query.split("&").forEach(param => { var parts = param.split("="); req.params[parts.shift()] = parts.join("=") || true; }); cb(); } /* * Add req.payload */ function payload(req, res, cb, app) { var max = 50 * 1000; req.payload = ""; var warned = false; req.on("data", d => { if (!warned && req.payload.length + d.length > max) { app.warning("Payload with length above "+max+" bytes ignored."); return cb(); } req.payload += d; }); req.on("end", () => { if (!warned) cb(); }); } exports.cookies = cookies; exports.params = params; exports.payload = payload;