Node.js通過jquery的ajax來獲取參數

這是在前面練習的基礎上繼續學習發出的心得。在頁面刷出數據後想對某些內容執行刪除操作,這裏用到jquery的ajax,通過ajax傳入一個唯一的值,比如collection裏面的_id,然後在node處理程序裏面接收這個參數,調用remove方法執行刪除操作。具體代碼如下:

1、我的ajax代碼是寫在一個頁面當中。

$('.my-delete').click(function(){
     var id=$(this).attr("data-id");  //在頁面當中我直接把數據的_id值刷出來賦給data-id
     $.ajax({
         type:'post',
         url:"/msgDelete",
         data:{id:id},
         success:function(data){  //以我的寫法,這裏success是沒有執行到的,直接跑到message處理程序,成功刪除就over了
             if(data){
                 console.log('成功了啊');
             } else{
                  console.log("返回值爲空");
             }
         }
     });
 })
這裏處理url爲"/msgDelete",因此需要修改app.js添加msgDelete的處理事件,我是在當前頁執行刪除操作,因此轉向頁面也是當前頁。

app.get('/msgDelete',message.del);
app.post('/msgDelete',message.delMsg);
修改mesage.js裏面的del和delMsg方法如下所示。
exports.del = function (req,res){
    res.render('home',{title:'Delete Message'})
}

exports.delMsg = function (req,res){
    msgModel.remove({_id:req.body.id},function(err,data){
        if(!err){
            res.send('true');//刪除成功後返回true用於前端ajax的success函數接收的data,這裏send的數據格式可以根據需要自己定義
        }else{
            res.send('false');
        }
    })
}
這裏的delMsg是真是實現刪除操作的過程,remove()方法的兩個參數,第一個是條件,第二個是回調函數,這裏我要刪除指定一條id的數據,通過req.body.id來獲取前面頁面ajax傳入的參數,刪除完成之後,重新調用find方法查找數據庫的數據,看看結果是不是正確的,docs爲返回的數組列。

具體什麼刪除之後,相要把這個刪除的隱藏啊之類的就不寫了,需要的自己研究,反正返回值都已經給出來了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章