node+ajax實戰案例(6)

8.刪除客戶

#8.1.發送id到後臺

刪除用戶信息比較簡單,只須要把對應行的id發送到後臺就能夠了html

oTable.onclick = function (ev) {
      var ev = ev  || event;
      var aTd = ev.target.parentNode.parentNode.children
      //  點擊刪除按鈕 刪除對應的行
      if(ev.target.innerHTML === "刪除"){
        ajax({
          method: 'post',
          url: '/delete',
          data: 'id='+aTd[0].innerHTML,
          success: function (result) {
            if(result.status === 0){
              alert('刪除成功');
              window.location.reload();
            }
          }
        })
      }
      //若是點擊的是修改 須要回顯編輯框
      if(ev.target.innerHTML === "修改"){

        editUser.style.display = "block";
        editUser.style.left = document.documentElement.clientWidth / 2 - editUser.offsetWidth / 2 + "px";
        editUser.style.top = document.documentElement.clientHeight / 2 - editUser.offsetHeight / 2 + "px";
      //  把當前行的數據顯示到表單中
        editUsername.value = aTd[1].innerHTML;
        editEmail.value = aTd[2].innerHTML;
        editPhone.value = aTd[3].innerHTML;
        editQq.value = aTd[4].innerHTML;
        editId.value = aTd[0].innerHTML;
      }
};

#8.2.後臺接收數據而且刪除數據庫中符合條件的記錄

//  刪除數據
if(url_obj.pathname === '/delete' && req.method === 'POST'){
    var user_info = '';
    req.on('data', function (chunk) {
      user_info += chunk;
    });
    req.on('end', function (err) {
      if(!err){
        var user_obj = queryString.parse(user_info);
        var sql = 'DELETE FROM user WHERE id='+Number(user_obj.id);
        connection.query(sql, function (error, result) {

          if(!error && result){
            res.write('{"status":0,"message":"刪除成功"}');
            res.end();
          }
        })
      }
    })
    return;
}

#9.退出登陸

#9.1.cookie

首先,咱們要搞明白cookie是什麼?Cookie 是在 HTTP 協議下,服務器或腳本能夠維護客戶工做站上信息的一種方式。Cookie 是由 Web 服務器保存在用戶瀏覽器(客戶端)上的小文本文件,它能夠包含有關用戶的信息。不管什麼時候用戶連接到服務器,Web 站點均可以訪問 Cookie 信息node

下面是cookie在用戶登陸中的應用ajax

#9.2.驗證登陸權限

在node中使用cookie,咱們能夠去安裝一個cookie包,這個包中封裝了一下方法方便咱們設置和獲取cookie,首先須要安裝這個包sql

npm install cookie --save

在index.js文件中,"/login"這個路由判斷內添加設置cookie的代碼數據庫

//須要先在index.js頭部引入cookie模塊

var cookie = require("cookie");
// 在login返回數據前設置cookie

if(!error && result && result.length !== 0){
    // 這裏是新加的內容 返回一個是否登陸的標識
    res.setHeader('Set-Cookie', cookie.serialize('isLogin', "true"));
    res.write('{"status":0, "message":"登陸成功"}', 'utf-8');
    res.end();
}else{
    res.write('{"status":1, "message":"用戶名或者密碼錯誤"}', 'utf-8');
    res.end();
}

接下來,須要新增一個渲染後臺頁面的路由,並根據cookie來決定是否渲染npm

//加載後臺首頁
if(url_obj.pathname === "/admin.html" && req.method === "GET"){
    var cookie_obj = cookie.parse(req.headers.cookie || '')
    if(cookie_obj.isLogin === "true"){
    render("./template/admin.html", res);
    }else {
    render('./template/error.html', res);
    }
    return;
}

#9.3.退出操做

//退出
if(url_obj.pathname === "/logout" && req.method === "GET"){
    // 修改cookie中登陸的標識
    res.setHeader('Set-Cookie', cookie.serialize('isLogin', ""));
    render("./template/index.html", res);
    return
}
相關文章
相關標籤/搜索