helper.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. var Handlebars = require('handlebars');
  2. var GREETING = "Hello, World!";
  3. var HELLO_OBJ = { message: GREETING };
  4. var self = module.exports = {
  5. ADDITIONAL_FORTUNE: {
  6. id: 0,
  7. message: 'Additional fortune added at request time.'
  8. },
  9. fortunesTemplate: Handlebars.compile([
  10. "<!DOCTYPE html>",
  11. "<html>",
  12. "<head><title>Fortunes</title></head>",
  13. "<body>",
  14. "<table>",
  15. "<tr>",
  16. "<th>id</th>",
  17. "<th>message</th>",
  18. "</tr>",
  19. "{{#fortunes}}",
  20. "<tr>",
  21. "<td>{{id}}</td>",
  22. "<td>{{message}}</td>",
  23. "</tr>",
  24. "{{/fortunes}}",
  25. "</table>",
  26. "</body>",
  27. "</html>"
  28. ].join('')),
  29. randomTfbNumber: function () {
  30. return Math.floor(Math.random() * 10000) + 1;
  31. },
  32. fillArray: function(value, len) {
  33. var arr = [];
  34. for (var i = 0; i < len; i++) {
  35. arr.push(value);
  36. }
  37. return arr;
  38. },
  39. addTfbHeaders: function (res, headerType) {
  40. var headers = {
  41. 'Server': 'Node'
  42. }
  43. if (headerType === 'plain') {
  44. headers['Content-Type'] = 'text/plain; charset=UTF-8';
  45. } else if (headerType === 'json') {
  46. headers['Content-Type'] = 'application/json';
  47. } else if (headerType === 'html') {
  48. headers['Content-Type'] = 'text/html; cherset=UTF-8';
  49. }
  50. res.writeHead(200, headers);
  51. },
  52. responses: {
  53. jsonSerialization: function (req, res) {
  54. self.addTfbHeaders(res, 'json');
  55. res.end(JSON.stringify(HELLO_OBJ));
  56. },
  57. plaintext: function (req, res) {
  58. self.addTfbHeaders(res, 'plain');
  59. res.end(GREETING);
  60. },
  61. routeNotImplemented: function (req, res) {
  62. res.writeHead(501, {'Content-Type': 'text/plain; charset=UTF-8'});
  63. var reason = { reason: "`" + req.url + "` is not an implemented route" };
  64. res.end(JSON.stringify(reason));
  65. }
  66. }
  67. };