milardovich

app.js

Jul 30th, 2014
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express'),
  2.     path    = require('path'),
  3.     fs      = require('fs'),
  4.     uuid    = require('node-uuid');
  5.  
  6. var app = express(),
  7.     baseDeDatos = fs.readFileSync('./datos.json').toString();
  8.  
  9. var datos = JSON.parse(baseDeDatos);
  10.  
  11. app.use(express.static(path.join(__dirname, 'public')));
  12.  
  13. // Add POST, PUT, DELETE methods to the app
  14. app.use(express.bodyParser());
  15. app.use(express.cookieParser());
  16. app.use(express.methodOverride());
  17.  
  18. // Pagina de Inicio: http:localhost:4000
  19. app.get('/', function (req,res){
  20.     res.sendfile(__dirname + '/index.html');
  21. });
  22.  
  23. // API REST
  24.  
  25. // Mostrar todos los libros
  26. app.get('/libros', function(req,res) {
  27.     res.send(datos);
  28. });
  29.  
  30. // Mostrar el detalle de un libro
  31. app.get('/libros/:id', function(req,res,next) {
  32.     var dato;
  33.  
  34.     for ( var i=0; i<datos.length; i++ ) {
  35.         var libro = datos[i];
  36.  
  37.         if (libro.id === req.params.id) {
  38.             dato = libro;
  39.         }
  40.     }
  41.  
  42.     if (dato) {
  43.         res.send(dato);
  44.     } else {
  45.         res.statusCode = 500;
  46.         return res.send('No se encuentra el id.');
  47.     }
  48.  
  49. });
  50.  
  51. // POST: crear un nuevo libro.
  52. app.post('/libros', function (req, res){
  53.     req.body.id = uuid.v1(4);
  54.  
  55.     datos.push(req.body);
  56.  
  57.     res.send(200, {id: req.body.id});
  58. });
  59.  
  60. // PUT: Actualizar un libro.
  61. app.put('/libros/:id', function (req, res){
  62.     var libro;
  63.  
  64.     for (var i = datos.length - 1; i >= 0; i--) {
  65.         libro = datos[i];
  66.  
  67.         if(libro.id === req.params.id){
  68.             datos[i] = req.body;
  69.         }
  70.     }
  71.  
  72.     res.send(200);
  73. });
  74.  
  75. // DELETE: Eliminar un libro.
  76. app.delete('/libros/:id', function (req,res) {
  77.  
  78.     var elementoEliminar;
  79.  
  80.     for ( var i=0; i<datos.length; i++ ) {
  81.         var libro = datos[i];
  82.  
  83.         if (libro.id === req.params.id) {
  84.             elementoEliminar = i;
  85.         }
  86.     }
  87.  
  88.     datos.splice(elementoEliminar, 1);
  89.  
  90.     res.send(200);
  91.    
  92. });
  93.  
  94. app.listen(4000);
Advertisement
Add Comment
Please, Sign In to add comment