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