-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
78 lines (65 loc) · 1.62 KB
/
Copy pathapp.js
File metadata and controls
78 lines (65 loc) · 1.62 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
const express = require('express');
const mongoose = require('mongoose');
const methodOverride = require('method-override');
const ejs = require('ejs');
const Post = require('./models/Post')
const app = express();
//connect DB
mongoose.connect('mongodb://localhost/cleanblog-test-db', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
});
//TEMPLATE ENGINE
app.set('view engine', 'ejs');
//MIDDLEWARES
app.use(express.static('public'));
app.use(express.urlencoded({extended:true}))
app.use(express.json())
app.use(
methodOverride('_method', {
methods: ['POST', 'GET'],
})
)
app.get('/', async (req, res) => {
const posts = await Post.find({})
res.render('index', {
posts
});
});
app.get('/about', (req,res) => {
res.render('about')
})
app.get('/post/:id', async (req,res) => {
const post = await Post.findById(req.params.id);
res.render('post', {
post
})
})
app.get('/add_post', (req,res) => {
res.render('add_post')
})
app.post('/posts', async (req,res) => {
console.log(req.body);
Post.create(req.body);
res.redirect('/')
})
app.get('/posts/edit/:id', async (req,res) => {
const post = await Post.findOne({ _id: req.params.id})
res.render('edit',{
post
})
})
app.put('/posts/:id', async (req, res) => {
const post = await Post.findOne({_id: req.params.id});
post.title = req.body.title;
console.log(req.body.title);
post.detail = req.body.detail;
console.log(req.body.detail);
post.save();
res.redirect(`/post/${req.params.id}`);
})
const port = 4000;
app.listen(port, () => {
console.log(`Welcome to the server running on port ${port}`);
});