mongoose mongodb get post delete
Sun Jul 23 2023 09:18:07 GMT+0000 (Coordinated Universal Time)
Saved by @nelson22
// create model schema
// models/blog.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const blogSchema = new Schema({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
}
}, {timestamps: true});
const Blogs = mongoose.model('Blog', blogSchema);
module.exports = Blogs;
--------------------------------------------------------
// create sandbox for mongoose mongodb
// app.js
const Blog = require('./models/blog');
// connect to db
const dbURI = 'mongodb+srv://nelson:nelson1234@nodeninja.kwv2roe.mongodb.net/nodeninja?retryWrites=true&w=majority';
mongoose.connect(dbURI, {useNewUrlParser: true, useUnifiedTopology: true})
.then((data) => {
console.log('Connected to DB');
app.listen(3000);
})
.catch((err) => console.log(err));
// mongoose and mongodb routes
app.get('/create-blog', (req, res) => {
const blogs = new Blog({
title: 'This is sandbox title of blogs.',
description: 'This is sandbox description of blogs.'
});
blogs.save()
.then(result => {
res.send(result);
})
.catch(err => {
console.log(err);
})
})
app.get('/all-blogs', (req, res) => {
Blog.find()
.then(result => {
res.send(result);
})
.catch(err => {
console.log(err);
})
})
app.get('/single-blog', (req, res) => {
Blog.findById('63177b54a545607ce83c956f')
.then(result => {
res.send(result);
})
.catch(err => {
console.log(err);
})
})
--------------------------------------------------------
// post request
// createblog.ejs
<form action="/blogs" method="POST">
<input type="text" placeholder="Enter Blog Title" class="input" name="title"> <br>
<textarea placeholder="Enter Blog Description" class="input" name="description"></textarea> <br>
<input type="submit" value="Submit" class="submit">
</form>
// app.js
app.use(express.urlencoded({ extended: true}));
app.post('/blogs', (req, res) => {
const blog = new Blog(req.body);
blog.save()
.then(result => {
res.redirect('/blogs');
})
.catch(err => {
console.log(err);
})
})
--------------------------------------------------------
// getting particular id value
app.get('/blogs/:id', (req, res) => {
const id = req.params.id;
Blog.findById(id)
.then(result => {
res.render('details', {blog: result, title: 'Blog Detail page'})
})
.catch((err) => {
console.log(err);
})
})
--------------------------------------------------------
// Delete request
<button class="delete" data-blogid="<%= blog.id %>">Delete</button>
const deleteBtn = document.querySelector('.delete');
deleteBtn.addEventListener('click', (e) => {
const endPoint = `/blogs/${deleteBtn.dataset.blogid}`
fetch(endPoint, {
method: 'DELETE'
})
.then(response => response.json())
.then(data => window.location.href = data.redirect)
.catch(err => {
console.log(err);
})
})
app.delete('/blogs/:id', (req, res) => {
const id = req.params.id;
Blog.findByIdAndDelete(id)
.then(result => {
res.json({redirect: '/blogs'})
})
.catch(err => {
console.log(err)
})
})



Comments