NodeJs 创建一个简单的登陆注册

个人学习记录,仅供参考

参考

前台代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jQuery.js"></script>
    <script>
        window.onload = function () {
            var oTxtUser = document.getElementById('user');
            var oTxtPass = document.getElementById('pass');
            var oBtnReg = document.getElementById('reg_btn');
            var oBtnLogin = document.getElementById('login_btn');
            oBtnLogin.onclick = function(){
                $.ajax({
                    url:'/user',
                    data:{act:'login',user:oTxtUser.value,pass:oTxtPass.value},
                    type:'get',
                    success:function (str) {
                        var json = eval('('+str+')');
                        if(json.ok){
                            alert("登陆成功")
                        }else {
                            alert("登陆失败" + json.msg)
                        }
                    },
                    error:function () {
                        alert('通信错误')
                    }
                })
            }
            oBtnReg.onclick = function () {
                $.ajax({
                    url:'/user',
                    data:{act:'reg',user:oTxtUser.value,pass:oTxtPass.value},
                    type:'get',
                    success:function (str) {
                        var json = eval('('+str+')');
                        if(json.ok){
                            alert("注册成功")
                        }else {
                            alert("注册失败" + json.msg)
                        }
                    },
                    error:function () {
                        alert('通信错误')
                    }
                })
            }
        }
    </script>
</head>
<body>
    用户名:<input type="text" id="user"><br>
    密码:<input type="password" id="pass"><br>
    <input type="button" id="reg_btn" value="注册">
    <input type="button" id="login_btn" value="登陆">
</body>
</html>

后台代码

const http = require('http');
const fs = require('fs');
const querystring = require('querystring');
const urlLib = require('url');
var users = {};//模拟
http.createServer(function (req,res) {
//解析数据
    var str = ''; //模拟
    req.on("data",function (data) {
        str += data;
    });
    req.on("end",function (err) {
        var obj = urlLib.parse(req.url,true);
        const url = obj.pathname;
        const GET = obj.query;
        const POST = querystring.parse(str);
        //区分 接口 文件
        if(url == '/user'){//接口
            switch (GET.act){
                case 'reg':
                    //1.检查用户名是否已经有了
                    if(users[GET.user]){
                        res.write('{"ok":false,"mag":"此用户已存在"}');
                    }else {
                        //2.插入users
                        users[GET.user] = GET.pass;
                        res.write('{"ok":true,"mag":"注册成功"}');
                    }
                    break;
                case  'login':

                    if(users[GET.user] == null){//1.检查用户是否存在
                        res.write('{"ok":false,"mag":"此用户不存在"}');
                    }else if(users[GET.user] != GET.pass){//2.检查用户密码是否正确
                        res.write('{"ok":false,"mag":"用户名或密码有误"}');
                    }else {
                        res.write('{"ok":true,"mag":"登陆成功"}');
                    }

                    break;
                default:
                    res.write('{"ok":false,"mag":"未知的act"}');
            }
            res.end();
        }else {             //文件
            //读取文件
            var file_name = './www' + url;
            fs.readFile(file_name,function (err,data) {
                if(err){
                    res.write('404');
                }else {
                    res.write(data)
                }
                res.end();
            });
        }
    });
}).listen(8080);    

    原文作者:杭州蘇小小
    原文地址: https://segmentfault.com/a/1190000016119593
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞