mongoose mongodb get post delete

PHOTO EMBED

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)
    })
})
        
        

 
 
 
 
content_copyCOPY