-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
142 lines (132 loc) · 3.93 KB
/
Copy pathapp.js
File metadata and controls
142 lines (132 loc) · 3.93 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require("mongoose");
const _=require('lodash/capitalize');
const capitalize = require("lodash/capitalize");
const app = express();
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("public"));
//connecting local server database
mongoose
.connect("mongodb://localhost:27017/wikiDB", {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => console.log("connected to database"))
.catch((err) => console.error(err));
//making schema of wikiDB
const articleSchema = new mongoose.Schema({
title: String,
content: String,
});
//making model of that schema
const Article = mongoose.model("Article", articleSchema);
////////////////////// targeting for all articles////////////////
app
.route("/articles")
.get(function (req, res) {
Article.find()
.then((foundArticles) => {
// console.log(foundArticles);
if(foundArticles)
res.send(foundArticles);
else
res.send("no article found");
})
.catch((err) => {
res.send(err);
console.error(err);
});
})
.post(function (req, res) {
// console.log(req.body.title);
// console.log(req.body.content);
//make new article send by user
const article = new Article({
title: capitalize(req.body.title),
content: req.body.content,
});
//save that article in database
article
.save()
.then(() => {
console.log("successfully inserted in articles");
res.send("successfully added new article");
})
.catch((err) => {
console.error(err);
res.send("something went wrong. please try again!");
});
})
.delete(function (req, res) {
Article.deleteMany()
.then(function () {
res.send("successfully deleted all articles");
})
.catch((err) => {console.error(err)
res.send("error during deletd in articles");
});
});
//////////////////////targeting for specfic articles?/////
app
.route("/articles/:articleTitle")
.get(function (req, res) {
Article.findOne({ title: capitalize(req.params.articleTitle) })
.then((foundArticle) => {
if (foundArticle) {
res.send(foundArticle);
} else {
res.send("No articles matching that title was found");
}
})
.catch((err) => {console.error(err)
res.send("error during search specfic article");
});
})
//this method replaced all previous data with new data
.put(function (req, res) {
Article.replaceOne(
{ title: capitalize(req.params.articleTitle) },
{ title: req.body.title, content: req.body.content }
)
.then(() => {
console.log("successfully replaced selected data");
res.send("succefully replaced selected previous data");
})
.catch((err) => {
res.send(err);
console.error(err);
});
})
.patch(function (req, res) {
const userData=req.body;
const update={$set:userData};
Article.updateOne({ title: capitalize(req.params.articleTitle) }, update,{new:true})
.then(function(data){
console.log("successfully updated selected data");
// res.send("successfully updated selected data");
res.send(data);
})
.catch((err)=>res.send(err));
})
.delete(function(req,res){
Article.findOneAndDelete({title:capitalize(req.params.articleTitle)})
.then(()=>{
console.log("successfully deleted specific route");
res.send("successfully deleted specific route ");
})
.catch(()=>{
console.error(err);
res.send(err);
})
});
app.listen(3000, function () {
console.log("server started at port 3000 ");
});
// new method for configuring route
// app.route("/article")
// .get(function(req,res){})
// .post(function(req,res){})
// .delete(function(req,res){});