Web framework.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

middleware.js 1015B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Adds req.cookie
  3. */
  4. function cookies(req, res, cb) {
  5. req.cookies = {};
  6. if (!req.headers.cookie)
  7. return cb();
  8. req.headers.cookie.split(/;\s+/).forEach(cookie => {
  9. var parts = cookie.split("=");
  10. req.cookies[parts.shift()] = parts.join("=");
  11. });
  12. cb();
  13. }
  14. /*
  15. * Adds req.params from URL parameters
  16. */
  17. function params(req, res, cb) {
  18. req.params = {};
  19. if (!req.urlobj.query)
  20. return cb();
  21. req.urlobj.query.split("&").forEach(param => {
  22. var parts = param.split("=");
  23. req.params[parts.shift()] = parts.join("=") || true;
  24. });
  25. cb();
  26. }
  27. /*
  28. * Add req.payload
  29. */
  30. function payload(req, res, cb, app) {
  31. var max = 50 * 1000;
  32. req.payload = "";
  33. var warned = false;
  34. req.on("data", d => {
  35. if (!warned && req.payload.length + d.length > max) {
  36. app.warning("Payload with length above "+max+" bytes ignored.");
  37. return cb();
  38. }
  39. req.payload += d;
  40. });
  41. req.on("end", () => {
  42. if (!warned)
  43. cb();
  44. });
  45. }
  46. exports.cookies = cookies;
  47. exports.params = params;
  48. exports.payload = payload;