zoukankan      html  css  js  c++  java
  • node+ajax实战案例(4)

    4.用户登录实现

    4.1.用户登录实现思路

    1 用户输入登录信息,点击登录的时候把用户登录的这些信息收集起来,然后组装数据通过ajax方式发送到后台

    2 后台接到用户输入的登录信息,把这些信息拿去和数据库中的数据做比对,如果成功返回成功信息,如果失败返回失败信息

    3 后台返回信息给前台页面,在前台页面中做相应的逻辑处理

    4.2.收集用户登录信息并且发送到后台

    <script>
            var oBtn = document.getElementById('btn');
            var oPass = document.getElementById('password');
            var oUser = document.getElementById('username');
            oBtn.onclick = function () {
              ajax({
                method: 'post',
                url: '/login',
                data: 'username='+oUser.value+'&password='+oPass.value,
                success: function (result) {
                 console.log(result)
                }
              })
            }
        </script>
    

    4.3.接收用户登录信息和后台做比对

    if(url_obj.pathname === '/login' && req.method === 'POST'){
        var user_info = '';
        req.on('data',function (chunk) {
          user_info+=chunk;
        });
        req.on('end', function (err) {
          res.setHeader('content-type', 'text/html;charset=utf-8');
          var user_obj = queryString.parse(user_info);
          if(!err){
            var sql = 'SELECT * FROM admin WHERE username="'+user_obj.username+'" AND password="'+user_obj.password+'"';
            connection.query(sql, function (error, result) {
              if(!error && result.length !== 0) {
                res.write('{"status":0, "message": "登录成功"}');
              }else{
                res.write('{"status":1, "message": "用户名或者密码不正确"}')
              }
              res.end();
            });
          }
        })
        return;
      }
    

    4.4.前端收到后台发送的信息,根据信息做具体业务处理

    var oBtn = document.getElementById('btn');
    var oPass = document.getElementById('password');
    var oUser = document.getElementById('username');
    oBtn.onclick = function () {
        ajax({
        method: 'post',
        url: '/login',
        data: 'username='+oUser.value+'&password='+oPass.value,
        success: function (result) {
            if (result.status === 0){
            window.location.href = '/admin';
            }else{
            alert(result.message);
            }
        }
        })
    }
    

    5.客户列表渲染

    5.1.新建数据表

    数据表user的规划字段如下:

    id int primary key auto_increment,
    username varchar(30) not null,
    email varchar(30) not null,
    phone char(11) not null,
    qq char(11) not null
    

    新建完成后手动添加几条数据

    5.2.发送请求获取数据

    在admin.html文件中发送ajax请求

    <script>
     //获取表格数据
        ajax({
          method: 'get',
          url: '/list',
          success: function (result) {
            console.log(result)
           }
        });
    </script>
    

    5.3.后台接收请求,并从数据库中查询出数据,返回给前端页面

    //  返回整个表格数据
    if(url_obj.pathname === '/list' && req.method === 'GET'){
        var sql = 'SELECT * FROM user';
        connection.query(sql, function (error, result) {
            if(!error && result){
                res.setHeader('content-type','text/plain;charset=utf-8');
                res.write(JSON.stringify(result));
                res.end();
    
            }else {
                console.log(error)
            }
        })
        return;
    }
    

    5.4.前端接收到后台返回的数据,生成表格

     //获取表格数据
        ajax({
          method: 'get',
          url: '/list',
          success: function (result) {
            for(var i=0; i<result.length;i++){
              var oTr = document.createElement('tr');
              for(var item in result[i]){
                var oTd = document.createElement('td');
                oTd.innerHTML = result[i][item];
                oTr.appendChild(oTd);
              }
              var oP = document.createElement('td');
              oP.innerHTML = '<button class="btn btn-primary ">修改</button>
    ' +
                  '<button class="btn btn-danger">删除</button>';
              oTr.appendChild(oP);
              oTable.appendChild(oTr);
            }
          }
        });
    

    螺钉课堂视频课程地址:http://edu.nodeing.com

  • 相关阅读:
    失效的Eclipse API(一)
    contiki系统分析四:内存分配
    Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
    Error about updating UI in background thread
    ubuntu 安装ssh server
    [置顶] 树链剖分小节
    [置顶] LCA的树链剖分实现
    飞天开放平台编程指南——阿里云计算的实践
    一道C#面试题
    jQuery参考实例 1.8 将前一次选择的元素集合并到当前选择的元素集中
  • 原文地址:https://www.cnblogs.com/dadifeihong/p/12033498.html
Copyright © 2011-2022 走看看