¡GoConqr estrena diseño! Cuéntanos qué te parece.

Módulo 6 de 7 · Texto

Routes.js

FREDYS FERNANDEZ

var express = require("express");
var Imagen = require("./models/imagenes");
var router = express.Router();
var image_finder_middleware = require("./middlewares/find_image");

router.get("/",function(req,res){
      /*Buscar usuario*/
      res.render("app/home");
});

/* Arquitectura REST */
/*    imagenes/new => Nos sirve para mostrar el formulario  */
router.get("/imagenes/new", function(req, res){
        res.render("app/imagenes/new");
});

//  exportamos la funcion middlewares que nos servira para optimizar las funciones
router.all("/imagenes/:id*", image_finder_middleware);

/*  imagenes/:id/edit => Va desplegar un formulario de una imagen ya existente  que nos permite editar dicha imagen */
router.get("/imagenes/:id/edit", function(req, res){
      res.render("app/imagenes/edit");
});

// imagen individual
/*
      Se pasa la url y el id de la  y despues anidams y concatenamos una serie de funciones que s
      pueden aplicar para este recurso.
      /imagenes/:id => Mostrar la imagen que nos solicito el usuario por el id
*/
router.route("/imagenes/:id")
.get(function(req,res){
      res.render("app/imagenes/show");
  })

/* Lo que hace put es actualizar esta imagen que nos manda el usuario*/
.put(function(req, res){
      res.locals.imagen.title = req.body.title;
      res.locals.imagen.save(function(err){
            if (!err){
                res.render("app/imagenes/show");
            }else {
                res.render("app/imagenes/"+req.params.id+"/edit");
            }
      })
})

/* Lo que hace delete es eliminar esta imagen que nos manda el usuario*/
 .delete(function(req,res){
        Imagen.findOneAndRemove({_id:req.params.id}, function(err,imagen){
              if(!err){
                    res.redirect("/app/imagenes");
              }else {
                    console.log(err);
                      res.redirect("/app/imagenes"+req.params.id);
              }
        })
});

/*Colección de imagenes
      Obetenemos todas las imagenes
*/
router.route("/imagenes")
.get(function(req,res){
        Imagen.find({},function(err,imagenes){
              if(err){ res.redirect("/app"); return; }
                res.render("app/imagenes/index", {Imagenes: imagenes});
        });
})

// Función para guardar la imagen
.post(function(req,res){
    var data = {
          title: req.body.title
    }
    var imagen = new Imagen(data);

    // Asincronamente ya se puede guardar la imagen
    imagen.save(function(err){
          if(!err){
                res.redirect("/app/imagenes/"+imagen._id);
                console.log(imagen);
          }else {
                res.render(err);
          }
    });

});

module.exports = router;
 

Instrucciones

Para avanzar en el curso, envía un intento de este test. Puedes enviarlo después de la última pregunta.

Ir al módulo elegido

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?