-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
128 lines (103 loc) · 3.05 KB
/
index.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
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
import express from "express";
import bodyParser from "body-parser";
import mongoose from "mongoose";
import dotenv from "dotenv";
import {dirname} from "path"
import { fileURLToPath } from "url";
dotenv.config();
const app = express();
const port = process.env.PORT;
const __dirname = dirname(fileURLToPath(import.meta.url));
app.set("view engine", "ejs");
mongoose.connect(process.env.MONGODB_URL);
const userSchema = new mongoose.Schema({
title: {
type: String,
required: true,
},
para: {
type: String,
required: true
}
});
const User = mongoose.model('user', userSchema);
app.use(express.static(__dirname + "/public"));
app.use(bodyParser.urlencoded({ extended: true }));
app.get("/", async (req, res) => {
try {
const foundDetails = await User.find();
res.render("home.ejs", { data: foundDetails });
}
catch (error) {
console.log(error);
res.status(500).send("Internal Server Error");
}
});
app.get("/post", (req, res) => {
res.render("post.ejs");
});
app.post("/post", async (req, res) => {
try {
const newUser = new User({
title: req.body.title,
para: req.body.para
});
newUser.save();
res.redirect("/");
}
catch (error) {
console.log(error);
res.status(500).send("Internal Server Error");
}
});
app.post('/delete/:id', async (req, res) => {
const postId = req.params.id;
try {
const deletedPost = await User.deleteOne({ _id: postId });
if (deletedPost) {
console.log(`Deleted post with ID ${postId}`);
} else {
console.log(`Post with ID ${postId} not found`);
}
res.redirect('/');
} catch (error) {
console.error(error);
res.status(500).send('Internal Server Error');
}
});
app.get("/update/:id", async (req, res) => {
const postId = req.params.id;
try {
const foundDetails = await User.findById(postId);
if (!foundDetails) {
console.log(`Post with ID ${postId} not found`);
return res.status(404).send("Post not found");
}
res.render("update.ejs", { post: foundDetails });
} catch (error) {
console.error(error);
res.status(500).send('Internal Server Error');
}
});
app.post('/update/:id', async (req, res) => {
const postId = req.params.id;
const objectId = new mongoose.Types.ObjectId(postId);
console.log(objectId);
const title = req.body.title;
const para = req.body.para;
try {
const updatePost = await User.updateOne({ _id: objectId }, { $set: { title: title, para: para } });
if (updatePost) {
console.log(`Updated post with ID ${postId}`);
} else {
console.log(`Post with ID ${postId} not found`);
}
res.redirect('/');
} catch (error) {
console.error(error);
res.status(500).send('Internal Server Error');
}
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});