-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
91 lines (76 loc) · 2.45 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
var express = require("express") ;
var app = express();
app.use(express.static("public")) ;
var sanitizer = require("express-sanitizer") ;
var methodOverride = require("method-override") ;
app.use(methodOverride("_method")) ;
var bodyparser = require("body-parser") ;
app.use(bodyparser.urlencoded({extended :true})) ;
app.use(sanitizer()) ;
var mongoose = require("mongoose") ;
mongodb://localhost/restful_blog
var url = mongoose.connect(process.env.DATABASEURL) || "mongodb://localhost/restful_blog" ;
// for safety purposes
mongoose.connect(process.env.url);
var blogSchema = new mongoose.Schema({
title: String,
image: String,
body: String,
date: {type: Date, default: Date.now}
});
var blog = mongoose.model("blog", blogSchema);
app.get("/", function(req,res){
res.redirect("/blogs") ;
}) ;
app.get("/blogs" , function(req,res){
blog.find({},function(err , maal){
if(err) console.log(err) ;
else res.render("index.ejs",{blogs : maal}) ;
}) ;
}) ;
// NEW ROUTE
app.get("/blogs/new" , function(req,res){
res.render("new.ejs") ;
}) ;
app.post("/blogs" , function(req,res){
req.body.body = req.sanitize(req.body.body) ;
blog.create({title : req.body.title , body : req.body.body , image : req.body.image} , function(err,newblog){
if(err) console.log(err) ;
else res.redirect("/blogs") ;
}) ;
}) ;
app.get("/blogs/:id" , function(req,res){
blog.findById(req.params.id , function(err,maal){
if(err) console.log(err) ;
else {
res.render("show.ejs" , {readmore : maal}) ;
}
}) ;
}) ;
// EDIT ROUTES
app.get("/blogs/:id/edit" , function(req,res){
blog.findById(req.params.id , function(err,maal){
if(err) console.log(err) ;
else {
res.render("edit.ejs",{ blog:maal }) ;
}
}) ;
}) ;
app.put("/blogs/:id/edit" , function(req,res){
req.body.body = req.sanitize(req.body.body) ;
blog.findByIdAndUpdate(req.params.id , req.body , function(err,maal){
if(err) console.log(err) ;
else {
res.redirect("/blogs/" + maal._id) ; }
}) ;
}) ;
// DELETE ROUTE
app.delete("/blogs/:id" , function(req,res){
blog.findByIdAndRemove(req.params.id , function(err){ // No maal here as there is nothing
if(err) console.log(err) ;
else res.redirect("/blogs") ;
}) ;
}) ;
app.listen(process.env.PORT , process.env.IP , function(){
console.log("Server is ON") ;
}) ; // Server start