2016-12-22 6 views
0

大きな問題がありますか?マングースはデータベースから文書を削除しません

私はMongooseデータベースから文書を削除しようとしていますが、代わりに何も起こりません。

誰か提案がありますか?

これはNodeJSアプリケーションからの私のコードです:

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

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

    res.redirect('/getMessages'); 

    }; 

}); 

そして、これが私のjQueryのコードです:

$(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

はなぜ?Node.jsの機能で任意のコンソールエラーをリダイレクトしていますか? – madalinivascu

+0

あなたはそれの後にリダイレクトする場合、なぜajaxをやっていますか? – madalinivascu

+0

コンソールからの書き込み:DELETE/delete/content- - ms - - – Kasparas

答えて

2

あなたはコールバックを間違えたと思います。

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

ここで、コールバックは外側にないカッコの内側にある必要があります。

"id"をパラメータとして次のコードを実行しました。私のレコードは削除されました。あなたがのID:には、Idではなく、あなたのコンテンツフィールドにあるデータが含まれています。ここで

// 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); 
     });   
    }); 
})(); 

は、削除のためのルートです:

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

ありがとう!私は私の問題を解決しました。 – Kasparas

0

サーバー側のリターンにページをリダイレクトしないでください。 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

あなたが書いたものに変更しましたが、まだ何もありません): – Kasparas

+0

コンソールエラー?あなたのAjaxは成功していますか?なぜあなたはAjaxの後にリダイレクトしていますか? – madalinivascu

+0

私は必要な正しいコンテンツを受け取ったので、私のAjaxは成功したと思います。コンソールで書き込みます:DELETE/delete/content- - ms - - – Kasparas

関連する問題