Search code examples
javascriptmongodbserver

MongooseError: Model.findOneAndRemove() no longer accepts a callback


const express = require('express')
const mongoose = require('mongoose')
var app = express()
var Data = require('./noteSchema')

mongoose.connect('mongodb://localhost/newDB')

mongoose.connection.once("open", () => {
    console.log("Connected to DB!")
}).on("error", (error) => {
    console.log("Failed to connect"+ error)
})
app.post("/create", (req,res) => {
    var note = new Data ({
        
        note: req.get("note"),
        title: req.get("title"),
        date: req.get("date")
    })

    note.save().then( () => {
        
        if( note.isNew == false){
            console.log("Save data!")
            res.send("Saved data !")
        }else{
            console.log("Failed to save data !")
        }
    })
})
app.get('/fetch', (req, res) => {    
    Data.find({}).then( (DBitems) => {
        res.send(DBitems )
    })  
})
app.post("/delete" , ( req , res ) =>{
    Data.findOneAndRemove({
        _id: req.get("id")   
    }, function(err) {
        console.log("Failed"+ err)
    })
    res.send("Deleted!")
})
var server = app.listen (8081,"192.x.x.x",()=>{
    console.log("server is running !")
}) 

i tried many things but cant figure out what to do

there seems to be a change in new update

error msg:MongooseError: Model.findOneAndRemove() no longer accepts a callback


Solution

  • following the error, you just need to change your code to use async function that would be like:

    app.post("/delete" , async ( req , res ) =>{
        await Data.findOneAndRemove({
            _id: req.get("id")   
        })
        res.send("Deleted!")
    })