O GoConqr está de visual novo! Conte para nós o que você achou.

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;
 

Instruções

Para avançar no curso, envie uma tentativa deste quiz. Você pode enviá-la depois da última pergunta.

Ir para o módulo escolhido

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?