var express = require("express");
var bodyParser = require("body-parser");
var User = require("./models/user").User; // De esta manera accedemos al objeto al momento de ser exportado
var app = express();
app.use("/public",express.static("public"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
//app.use(express.static("assets"));
app.set("view engine","jade");
app.get("/", function (req, res) {
res.render("index");
});
app.get("/signup",function(req, res){
User.find(function(err,doc){
console.log(doc);
res.render("signup");
});
});
app.get("/login",function(req, res){
res.render("login");
});
app.post("/users",function(req, res){
var user = new User({
email: req.body.email,
password: req.body.pass,
password_confirmation: req.body.password_confirmation,
username: req.body.username
});
// Promise
user.save().then(function(us){
res.send("Guardamos el Usuario exitosamente");
},function(err){
if (err){
console.log(String(err));
res.send("No Pudimos Guardar la información");
}
});
});
// Metodo FIND()
app.post("/sessions", function(req, res){
// El primer parametros que pasamos es el query y el segundo son los campos que nos quiere que
// nos devuelva del socumenro que estamos extrayendo y despues pasamos un callback
// findID
/*user.findId("5980f68b8f9d2e2004f76a0d", function(err, docs){
console.log(docs);
})*/
User.findOne({email:req.body.email, password:req.body.pass },function(err, docs){
console.log(docs);
res.send("Hola mundo");
});
});
app.listen(8080);
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;