http-select-and-render.js 966 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. var http = require('http');
  2. var fs = require('fs');
  3. var common = require('../test/common');
  4. var url = require('url');
  5. var conn = common.createConnection();
  6. var render = common.createTemplate();
  7. var port = process.env.PORT;
  8. http.createServer(function(req, res) {
  9. var q = url.parse(req.url, true);
  10. if (q.pathname == '/render') {
  11. var sql = q.query.q;
  12. var n = q.query.n;
  13. var rowsTotal = [];
  14. var doQueries = function(number) {
  15. if (number === 0) {
  16. var body = render({ records: rowsTotal});
  17. res.writeHead(200, {
  18. 'Content-Length': body.length,
  19. 'Content-Type': 'text/html' }
  20. );
  21. res.end(body);
  22. } else {
  23. conn.query(sql, function(err, rows) {
  24. // TODO: handle error
  25. rowsTotal = rowsTotal.concat(rows);
  26. doQueries(number-1);
  27. });
  28. }
  29. };
  30. doQueries(n);
  31. } else {
  32. res.writeHead(404);
  33. res.end();
  34. }
  35. }).listen(port || 1234);