-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
99 lines (83 loc) · 2.46 KB
/
app.js
File metadata and controls
99 lines (83 loc) · 2.46 KB
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
92
93
94
95
96
97
98
99
const database_url = require(__dirname + "/url.js");
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require("mongoose");
mongoose.connect(database_url);
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.set("view engine", "ejs");
app.use(express.static("public"));
const movieSchema = new mongoose.Schema({
title: String,
review: String,
rating: Number,
});
const Movie = mongoose.model("Movie", movieSchema);
//*********** Middleware **************************/
app.use(function (req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
next();
});
//Home Route
app.route("/").get((req, res) => {
res.send(
"To get all articles go to /movies route. To target a specific movie go to /movies/<i>movieTitle</i> route.<br> (To target movies whose title have space in between use %20 instead of space, eg. /movies/Kashmir%20Files).<br>To enter data go to /dataEntry route"
);
});
//************************** Request Targeting all the articles *************************************/
app.route("/movies").get(function (req, res) {
Movie.find(function (err, Movies) {
if (err) {
console.log(err);
} else {
console.log(Movies);
res.send(Movies);
}
});
});
app.route("/dataEntry")
.get((req, res) => {
res.render("index");
})
.post((req, res) => {
var NAME = req.body.name;
var REVIEW = req.body.review;
var RATING = req.body.rating;
const entry = new Movie({
title: NAME,
review: REVIEW,
rating: RATING,
});
entry.save();
console.log(NAME);
console.log(REVIEW);
console.log(RATING);
res.redirect("/dataEntry");
});
//******** Request Targeting specific article ********************//
app.route("/movies/:movieTitle")
.get((req, res)=>{
Movie.findOne({title: req.params.movieTitle}, function(err, foundArticle){
if(foundArticle){
res.send(foundArticle)
}else{
res.send("No such article found.")
}
})
});
app.route("/delete/:movieName")
.delete(function(req, res){
Movie.deleteOne(
{title: req.params.movieName},
function(err){
if(err){
res.send(err)
}else{
res.send("Sucessfully deleted!")
}
});
});
app.listen(process.env.PORT || 3000, function () {
console.log("Server running at: http://localhost:3000/");
});