• node---路由写登录注册


    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <p>用户名:<input type="text" id = "username"></p>
        <p>密码:<input type="password" id = "pwd"></p>
        <p><button id = "btn">注册</button></p>
    </body>
    </html>
    <script src = "./jquery.js"></script>
    <script>
         $('#btn').click(function(){
             var obj = {};   //注册数据是对象类型 
             obj.username = $('#username').val();
             obj.pwd = $('#pwd').val();
    
             $.ajax({
                 type:'get',
                 url:'/register',     //  /register是自己写的接口
                 data:obj,
                 dataType:'json',
                 success:function(res){
                 alert(res.info);      //res.info是调用接口中的
                   location.href = "./list.html";
                 }
             })
         })
    </script>

    list.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <p>用户名:<input type="text" id = "username"></p>
        <p>密码:<input type="password" id = "pwd"></p>
        <p><button id = 'btn'>登录</button></p>
    </body>
    </html>
    <script src = "./jquery.js"></script>
    <script>
         $('#btn').click(function(){
             var obj = {};
             obj.username = $('#username').val();
             obj.pwd = $('#pwd').val();
    
             $.ajax({
                 type:'get',
                 url:'/login',     //登录接口
                 data:obj,
                 dataType:'json',
                 success:function(res){
                  if(res.status){
                      alert(res.info);
                  }else{
                    alert(res.info);
                 }
             }
         })
      })
    </script>

    server.js

    const http = require('http');
    const fs = require('fs');
    const url = require('url');
    
    http.createServer((req,res)=>{
        let {pathname,query}= url.parse(req.url,true);
        if(pathname != "/favicon.ico"){
            if(pathname == "/"){
                fs.readFile('./index.html',(err,data)=>{
                    res.writeHead(200,{'content-type':'text/html;charset=utf8'});
                    res.end(data);
                }) 
            }else if(pathname == "/list.html"){
                fs.readFile('./list.html',(err,data)=>{
                    res.writeHead(200,{'content-type':'text/html;charset=utf8'});
                    res.end(data);
                }) 
            }else if(pathname == "/jquery.js"){
                fs.readFile('./jquery.js',(err,data)=>{
                    res.writeHead(200,{'content-type':'application/x-javascript;charset=utf8'});
                    res.end(data);
                })  
            }else if(pathname == '/register'){//写注册接口
                // console.log(query);
                // for(var attr in query){
                //     console.log(query[attr])
                // }
                res.writeHead(200,{'content-type':'application/x-javascript;charset=utf8'});
                fs.readFile('./data.json',(err,data)=>{//读取json文件,将用户的注册信息存入json文件中
                       var data = JSON.parse(data+"");//读取json中的数据,赋值给json
                       var json = JSON.parse(JSON.stringify(query));//query的内容就是用户注册的信息,所以将query中的数据拿出来放到json中;
                       data.info.push(json);//将query中的数据push到json中
                       console.log(data);
                       fs.writeFile('./data.json',JSON.stringify(data),(err)=>{});//读取json文件
                       res.end(JSON.stringify({   
                        status:true,
                        info:'注册成功'   
                    }))    
                  })
                }else if(pathname == '/login'){    //登录接口
            res.writeHead(200,{'content-type':'application/x-javascript;charset=utf8'});  //设置状态值和请求头格式
            fs.readFile("./data.json",(err,data)=>{     //读取json文件
                var data = JSON.parse(data+"").info;     //从json文件中获取数据
                var json = JSON.parse(JSON.stringify(query));     //解析query数据,判断query中的数据和json文件中的数据,如果相等,则登录成功
                let {username,password} = json;     //解构赋值
                for(var i = 0; i < data.length; i ++){
                    var uname = data[i].username;
                    var upwd = data[i].password;
                    if( username == uname && password == upwd ){    //判断query中的数据和json文件中的数据,如果相等,则登录成功,不相等,则登录失败
                        res.end(JSON.stringify({
                            status:true,
                            info:"登录成功"
                        }))
                        return;
                    }
                }
                res.end(JSON.stringify({
                    status:false,
                    info:"用户名或密码错误"
                }))
          })
        }
      }
    }).listen(3000);
    console.log('服务器启动');

    data.json

    {"info":[]}

    注:json中的数据值动态添加进去的。

  • 相关阅读:
    hdu 2485 Destroying the bus stations 迭代加深搜索
    hdu 2487 Ugly Windows 模拟
    hdu 2492 Ping pong 线段树
    hdu 1059 Dividing 多重背包
    hdu 3315 My Brute 费用流,费用最小且代价最小
    第四天 下载网络图片显示
    第三天 单元测试和数据库操作
    第二天 布局文件
    第一天 安卓简介
    Android 获取存储空间
  • 原文地址:https://www.cnblogs.com/kinoko-1009/p/10501377.html
Copyright © 2020-2023  润新知