web_sum.js 1007 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var http = require('http');
  2. var multimeter = require('multimeter');
  3. http.createServer(function (req, res) {
  4. var multi = multimeter(res);
  5. var charm = multi.charm;
  6. var xs = [];
  7. for (var i = 0; i < 100; i++) xs.push(i);
  8. charm.reset()
  9. .write('Calculating the sum of [0..100]:\n\n')
  10. ;
  11. var bar = multi(4, 3, { width : 20 });
  12. bar.percent(0);
  13. var sum = 0;
  14. charm.write('\n\nResult: ' + sum);
  15. var iv = setInterval(function () {
  16. var x = xs.shift();
  17. bar.percent(100 - xs.length);
  18. charm
  19. .left(sum.toString().length)
  20. .erase('end')
  21. ;
  22. sum += x;
  23. charm.write(sum.toString());
  24. if (xs.length === 0) {
  25. charm.write('\n');
  26. res.end();
  27. }
  28. }, 50);
  29. res.connection.on('end', function () {
  30. multi.destroy();
  31. clearInterval(iv);
  32. });
  33. }).listen(8081);
  34. console.log('curl -N localhost:8081');