Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2016
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. const _ = require('lodash');
  2. const express = require('express');
  3. const bodyParser = require('body-parser');
  4. var app = express();
  5.  
  6. app.set('port', (process.env.PORT || 8080));
  7. app.use(bodyParser.json()); // for parsing application/json
  8. app.use(express.static(__dirname + '/public'));
  9.  
  10. var heroes = [
  11. {id: 11, name: 'Mr. Nice'},
  12. {id: 12, name: 'Narco'},
  13. {id: 13, name: 'Bombasto'},
  14. {id: 14, name: 'Celeritas'},
  15. {id: 15, name: 'Magneta'},
  16. {id: 16, name: 'RubberMan'},
  17. {id: 17, name: 'Dynama'},
  18. {id: 18, name: 'Dr IQ'},
  19. {id: 19, name: 'Magma'},
  20. {id: 20, name: 'Tornado'},
  21. ];
  22.  
  23. app.get('/app/heroes', function(req, res) {
  24. var name = req.query.name;
  25. if (name) {
  26. name = name.toLowerCase();
  27. var results = _.filter(heroes, function(hero) {
  28. return _.includes(hero.name.toLowerCase(), name);
  29. });
  30. res.json(results);
  31. } else {
  32. res.json(heroes);
  33. }
  34. });
  35.  
  36. app.post('/app/heroes', function(req, res) {
  37. var hero = req.body;
  38. if (typeof hero.name === "string") {
  39. var newId = 1;
  40. _.forEach(heroes, function(result) {
  41. newId = Math.max(newId, result.id);
  42. });
  43. res.json({ id: newId, name: hero.name });
  44. } else {
  45. res.sendStatus(400);
  46. }
  47. });
  48.  
  49. app.put('/app/heroes/:id', function(req, res) {
  50. const heroId = +req.params.id;
  51. var hero = _.find(heroes, function(hero) { return hero.id === heroId; });
  52. if (hero) {
  53. hero.name = req.body.name;
  54. res.json(heroes);
  55. } else {
  56. res.sendStatus(404);
  57. }
  58. });
  59.  
  60. app.delete('/app/heroes/:id', function(req, res) {
  61. const heroId = +req.params.id;
  62. var hero = _.find(heroes, function(hero) { return hero.id === heroId; });
  63. if (hero) {
  64. for(var i = 0; i < heroes.length; i++) {
  65. var hero = heroes[i];
  66. if (hero.id === heroId) {
  67. heroes.splice(i, 1);
  68. break;
  69. }
  70. }
  71. res.json(heroes);
  72. } else {
  73. res.sendStatus(404);
  74. }
  75. });
  76.  
  77. app.get('*', function(req, res) {
  78. res.sendFile(__dirname + '/src/html/index.html');
  79. });
  80.  
  81. app.listen(app.get('port'), function() {
  82. console.log('Node app is running on port', app.get('port'));
  83. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement