前后数据交互--node服务、登录、列表的增删改查

node服务app.js:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();

var config = {
    host:'127.0.0.1',
    port:'3031'
};
var admin={username:'admin',password: 'admin'};
var users=[
    {username:'13345678913',password:'123456'},
    {username:'13345678914',password:'123456'},
    {username:'13345678915',password:'123456'}];
var user={};
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));

var allowCrossDomain = function(req,res,next) {
    res.header('Access-Control-Allow-Origin', '*');//自定义中间件,设置跨域需要的响应头。
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');  //允许任何方法
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type,X-Session-Token');   //允许任何类型
    next();
};
app.use(allowCrossDomain);

app.get("/api/index",function(req,res) {
    res.send(user);
    console.log(req.query)
});
app.post("/api/login",function(req,res) {
    if(req.body){
        if(req.body.username === admin.username && req.body.password === admin.password){
            console.log("登录成功");
            res.send(req.body);
            user=Object.assign(req.body);
        } else {
            console.log("登录失败");
            res.send("登录失败")
        }
    }
    console.log(users,req.body,user)
});
app.get("/api/index/select",function (req,res) {
    if(user){
        res.send(users);
    }
});
app.post("/api/index/add",function (req,res) {
    if(user){
        console.log(req.body);
        res.send(req.body);
        users.push({username: req.body.username,password: req.body.password})
    }
});
app.post("/api/index/delete",function (req,res) {
    // res.send()
    if(user){
        users.splice(req.body.index,1);
        console.log(req.body);
        console.log('删除');
        res.send("删除成功");
    }
});
app.post("/api/index/edit",function (req,res) {
    // res.send()
    if(user){
        console.log(req.body)
        users[req.body.index];
        res.send(users[req.body.index]);
    }
});
app.post("/api/index/edituser",function (req,res) {
    // res.send()
    if(user){
        users[req.body.index].username=req.body.username;
        users[req.body.index].password=req.body.password;

        // users.splice(req.body.index,1);
        console.log(req.body);
        console.log('修改');
        res.send("修改成功");
    }
});
app.listen(config.port,function(){
    console.log('服务器已经启动 http://'+config.host+':'+config.port);
});

登录页html:

<div class="content">
        <div class="login">
            <div class="logo">
                <img src="./img/catFace.png"/>
            </div>
            <form id="login-form">
                <div class="inputs">
                    <label>手机号:</label>
                    <input type="text" name="" placeholder="请输入账号" required>
                    <div class="text-err"><div class="text-msg"></div><div class="triangle"></div></div>
                </div>
                <div class="inputs">
                    <label>密码:</label>
                    <input type="password" name="" placeholder="请输入密码" required>
                    <div class="pass-err"><div class="pass-msg"></div><div class="triangle"></div></div>
                </div>
                <button type="button" name="" id="submit" >登录</button>
            </form>
        </div>
    </div>

登录的js代码:

<script>
        function validateForm(){
            var phone = $("input[type=text]").val();
            var password = $("input[type=password]").val();
            var data={
                username:phone,
                password:password
            };
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open("post","http://127.0.0.1:3031/api/login",true);
            xmlhttp.setRequestHeader("Content-Type", "application/json");//指定参数类型
            xmlhttp.send(JSON.stringify(data));
            xmlhttp.onreadystatechange = function (){
                if (xmlhttp.readyState === 4 && xmlhttp.status === 200){
                    console.log(xmlhttp.responseText);
                    if(xmlhttp.responseText === "登录失败"){
                        alert("登录失败,用户名或密码错误!");
                        console.log(xmlhttp.responseText);
                        return false;
                        // return  window.location.href="login.html";
                    } else {
                        alert("登录成功,跳转到首页");
                        console.log(xmlhttp.responseText);
                        window.location.href="index.html";
                    }
                }
            }
        }
    </script>

index.html:

 <div class="content">
        <nav class="navbar navbar-default">
            <div class="container-fluid">
                <div class="navbar-header">
                    <h1 id="user"></h1>
                </div>
            </div>
        </nav>
        <div class="con-l">
            <ul>
                <li><a href="#" onclick="selectUser()">查看用户</a></li>
                <li><a href="#" onclick="add()">添加用户</a></li>
            </ul>
        </div>
        <div class="con-r">
            <div id="show"></div>
        </div>
    </div>

index.js:

 window.onload=function (){
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("get","http://127.0.0.1:3031/api/index",true);
        xmlhttp.send();
        xmlhttp.onreadystatechange = function (){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                if(JSON.parse(xmlhttp.responseText).username == undefined){
                    return  window.location.href="login.html"
                }
                console.log(xmlhttp.responseText);
                user.innerHTML="欢迎 "+JSON.parse(xmlhttp.responseText).username+" 回来!";
            }
        }
    };
    function selectUser() {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("get","http://127.0.0.1:3031/api/index/select",true);
        xmlhttp.send();
        xmlhttp.onreadystatechange = function (){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                console.log(xmlhttp.responseText);
                var str='';
                var data=JSON.parse(xmlhttp.responseText);
                data.forEach(function (v,i) {
                     str +=`<tr>
                            <td>${i+1}</td>
                            <td>${v.username}</td>
                            <td>${v.password}</td>
                            <td><button onclick="deleteUser(${i})">删除</button></td>
                            <td><button onclick="edit(${i})">修改</button></td>
                      </tr>`
                });
                show.innerHTML="<table>"+str+"</table>";
            }
        }
    }
    function add() {
        var str=`
           <label>手机号码:</label><input type="text" id="username" name="username" placeholder="请输入手机号码" required><br/>
           <p class="u-msg"></p>
           <label>密码:</label><input type="password" id="password" name="username" placeholder="请输入用户密码" required><br/>
            <p class="p-msg"></p>
           <label>确认密码:</label><input type="password" id="repassword" name="repassword" placeholder="请输入用户密码" required><br/>
            <p class="rep-msg"></p>
           <button type="submit" onclick="addUser()">添加</button>

        `;
        show.innerHTML=str;
    }
    function addUser() {
        var textCon = /(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/;
        var username = $('#username').val();
        var password = $('#password').val();
        var repassword = $('#repassword').val();
        if(!textCon.test(username)) {
            return   $(".u-msg").html("手机号格式错误")
        }
        if(password.length < 6) {
            return  $(".p-msg").html("密码长度不能小于6位数");
        }
        if(password !== repassword){
            return  $(".rep-msg").html("密码不正确");
        }
        var data = {
            username: username,
            password: password
        };
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("post","http://127.0.0.1:3031/api/index/add",true);
        xmlhttp.setRequestHeader("Content-Type", "application/json");//指定参数类型
        console.log(JSON.stringify(data));
        xmlhttp.send(JSON.stringify(data));
        xmlhttp.onreadystatechange = function (){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                if(xmlhttp.responseText){
                    console.log(xmlhttp.responseText);
                    // username.length=0;
                    // password.length=0;
                    // repassword.length=0;
                    alert("添加成功");
                    $('#username').val("");
                    $('#password').val("");
                    $('#repassword').val("");
                } else {
                    window.location.href="login.html"
                }
            }
        }
    }
    function deleteUser(i) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("post","http://127.0.0.1:3031/api/index/delete",true);
        var data = {
            index:i
        };
        xmlhttp.setRequestHeader("Content-Type", "application/json");//指定参数类型
        xmlhttp.send(JSON.stringify(data));
        console.log(data);
        xmlhttp.onreadystatechange = function (){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                if(xmlhttp.responseText){
                    console.log(xmlhttp.responseText);
                    alert("删除成功");
                    location.href = "index.html"
                } else {
                    window.location.href="login.html"
                }
            }
        }
    }
    function edit(i) {
        var str=`
            <label>手机号码:</label><input type="text" id="username" name="username"  placeholder="请输入手机号码" required><br/>
           <label>密码:</label><input type="text" id="password" name="username"  placeholder="请输入用户密码" required><br/>
           <button type="submit" onclick="editUser(${i})">修改</button>

        `;
        show.innerHTML=str;
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("post","http://127.0.0.1:3031/api/index/edit",true);
        xmlhttp.setRequestHeader("Content-Type", "application/json");//指定参数类型
        var data = {
            index:i
        };
        xmlhttp.send(JSON.stringify(data));
        xmlhttp.onreadystatechange = function (){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                if(xmlhttp.responseText){
                    var v = JSON.parse(xmlhttp.responseText);
                    console.log(xmlhttp.responseText);
                    $("#username").val(v.username);
                    $("#password").val(v.password);
                    console.log(v,i);
                } else {
                    window.location.href="login.html"
                }
            }
        }
    }
    function editUser(i) {
        var username = $('#username').val();
        var password = $('#password').val();
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("post","http://127.0.0.1:3031/api/index/edituser",true);
        var data = {
            index: i,
            username: username,
            password: password
        };
        xmlhttp.setRequestHeader("Content-Type", "application/json");//指定参数类型
        xmlhttp.send(JSON.stringify(data));
        console.log(data);
        xmlhttp.onreadystatechange = function (){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                if(xmlhttp.responseText){
                    console.log(xmlhttp.responseText);
                    alert("修改成功");
                    location.href = "index.html"
                } else {
                    window.location.href="login.html"
                }
            }
        }
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值