2016-12-22 1 views
0

Haben Sie ein kleines/großes Problem.Mongoose entfernt kein Dokument aus der Datenbank

Ich versuche, ein Dokument aus einer Mongoose-Datenbank zu entfernen, aber nichts passiert stattdessen.

Vielleicht hat jemand Vorschläge?

Dies ist mein Code aus der NodeJS Anwendung:

router.delete('/delete/:id',(req , res) =>{ 

    Message.remove({"content": req.params.id}), function(err, result){ 
    if (err) { 
     console.log(err); 
    } 

    res.redirect('/getMessages'); 

    }; 

}); 

Und das ist mein jQuery-Code:

$(document).ready(function() 
{ 
    $('.deleteUser').on('click', deleteUser); 
} 
); 

function deleteUser() 
{ 
    var confirmation = confirm('Are you sure want to delete this message?'); 

    if (confirmation) { 
     $.ajax({ 
      type: 'DELETE', 
      url: '/delete/'+$(this).data('id') 

     }).done(function(response){ 

      window.location.replace('getMessages'); 
     }); 
     window.location.replace('getMessages'); 
    } 
    else{ 
     return false; 
    } 


} 
+0

warum werden Sie in der node.js Funktion ?, keine Konsole eine Fehlermeldung? – madalinivascu

+0

Warum machst du Ajax, wenn du danach umleitest? – madalinivascu

+0

Konsole schreibt nur: DELETE/delete/content - - ms - - – Kasparas

Antwort

2

Ich denke, Sie haben den Rückruf verlegt.

Message.remove({"content": req.params.id}), function(err, result){ 
    if (err) { 
     console.log(err); 
    }  
    res.redirect('/getMessages');  
}; 

Hier sollte der Rückruf innerhalb der Klammer nicht außerhalb sein.

Ich habe den folgenden Code mit "ID" als Parameter ausgeführt und mein Datensatz wurde entfernt. Hoffe, du bist : ID enthält die Daten, die in Ihrem Content-Feld ist nicht die Id. Hier

// Index.js 
<button type="button" class="btn btn-primary" id="deleteMessage" value="585bc7a2d1387569d13c304a">Delete</button> 

//sample.js 
(function(){ 
    $('#deleteMessage').on("click",function(){   
     $.ajax({ 
      type: 'DELETE', 
      url: '/delete/'+$(this).val() 

     }).done(function(response){ 
      console.log(response);    
     }).fail(function(error){ 
      console.log(error); 
     });   
    }); 
})(); 

ist die Route zum Löschen:

router.delete('/delete/:id',function(req,res,next){  
    Message.remove({_id: req.params.id}, function(err,response){   
    if (err) { 
     console.log(err); 
    }  
    res.send(response); 
    }); 

}); 
+0

Danke dude aussehen! Ich habe mein Problem gelöst. – Kasparas

0

leitet die Seite nicht auf der Serverseite Rückkehr etwas zum Ajax:

router.delete('/delete/:id',(req , res) =>{ 

    Message.remove({"content": req.params.id}), function(err, result){ 
    if (err) { 
     console.log(err); 
    } 

    res.json({status:'ok'}); 
    //res.send(JSON.stringify({status:'ok'})); 

    }; 

}); 
+0

Ich habe geändert, was Sie geschrieben haben, aber immer noch nichts): – Kasparas

+0

irgendwelche Konsolenfehler? Ist dein Ajax erfolgreich? Warum redest du nach Ajax? – madalinivascu

+0

Ich denke, mein Ajax ist erfolgreich, da ich den richtigen Inhalt erhalte, den ich brauche. Konsole schreibt einfach: DELETE/delete/content - - ms - - – Kasparas

Verwandte Themen