zoukankan      html  css  js  c++  java
  • 简单 node.js实现注册登录

    整个功能需要创建四个文档 “app.js” , "db.txt" , "login.html" , "regist.html'。

    具体思路相信你在看的过程中很快就能理顺

    “app.js”

    var http = require("http");
    
    var url = require("url");
    
    var qs = require("querystring");
    
    var fs = require("fs");
    
    http.createServer(function (req , res) {
        res.setHeader("Access-Control-Allow-Origin" ,"*");
    
        if(req.method == "POST"){
    
    
    
            //接受发过来的用户名和密码
            var result = "";
            var pathName = url.parse(req.url).pathname;
    
    
            req.addListener("data" , function (chunk) {
                result += chunk;
            });
    
            req.on("end" , function () {
    
    
                var user = qs.parse(result);
                //判断用户是否存在
                if(user.username){
                    fs.readFile("db.txt" , "utf-8" , function (err , data) {
                if(!err){
                   console.log("读取文件成功");
                   if(!data){
                       if(pathName == "/login"){
                           res.end("该用户不存在");
                           return;
                       }
                       if(pathName == "/register"){
    
                           var arr = [];
                           var obj = {};
                           obj.username = user.username;
                           obj.password = user.password;
                           arr.push(obj);
                           fs.writeFileSync("db.txt" , JSON.stringify(arr), "utf-8");
                           res.end("注册成功");
                           return;
    
    
                       }
                   }else {
                       console.log("文件中有数据");
                       var arr = JSON.parse(data);
                       for(var i = 0 ; i< arr.length;i++){
                           var obj = arr[i];
                           if(obj.username == user.username){
                               if(pathName == "/login"){
                                   if(obj.password == user.password){
                                       res.end("登录成功");
                                       return;
                                   }else {
                                       res.end("密码错误");
                                       return;
                                   }
                               }
                               if(pathName == "/register"){
                                   res.end("密码错误");
                                   return;
                               }
                           }
                       }
                       if(pathName == "/login"){
                           res.end("用户名不存在");
                           return;
                       }
                       if(pathName == "/register"){
                           var obj = {};
                           obj.username = user.username;
                           obj.password = user.password;
                           arr.push(obj);
                           fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
                           res.end("注册成功");
                           return;
                       }
                   }
                }else {
                    console.log("读取文件失败");
                }
                    })
                }
            });
    
        }else {
            res.end("get请求");
        }
    
    }).listen(3000 , function (err) {
        if(!err){
            console.log("服务器启动成功,端口号3000...")
        }
    });

    "login.html"

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div>
            <label>用户名</label>
            <input type="text" id="user">
        </div>
        <div>
            <label>密码</label>
            <input type="text" id="password">
        </div>
        <div>
            <button id="register">注册</button>
        </div>
    </body>
    </html>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script>
        $(function () {
            $("#register").click(function () {
                $.ajax({
                    url:"http://localhost:3000/register",
                    type:"POST",
                    data:{
                        username:$("#user").val(),
                        password:$("#password").val()
                    },
                    success:function (res) {
                        console.log(res);
                        alert("注册成功")
                    },
                    error:function (err) {
                        console.log(err);
                    }
                })
    
            });
        });
    </script>

    "regist.html'

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div>
        <label>用户名</label>
        <input type="text" id="user">
    </div>
    <div>
        <label>密码</label>
        <input type="text" id="password">
    </div>
    <div>
        <button  id="login">登录</button>
        <button id="register"><a href="regist.html">注册</a></button>
    </div>
    </body>
    </html>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script>
        $(function () {
            $("#login").click(function () {
                if($("#user").val().length == 0){
                    return alert("请输入用户名")
                }
                if($("#password").val().length == 0){
                    return alert("请输入密码")
                }
                $.ajax({
                    url:"http://localhost:3000/login",
                    type:"POST",
                    data:{
                        username:$("#user").val(),
                        password:$("#password").val()
                    },
                    success:function (res) {
                        console.log(res);
    //                    alert("登录成功")
                    },
                    error:function (err) {
                        console.log(err);
                    }
                });
            });
        });
    </script>

    "db.txt"文档功能是记录传过的内容,只需要自己创建一个就可以了。 

  • 相关阅读:
    DML、DDL、DCL的区别
    exe文件图标不见了,教你win10桌面EXE文件图标不见了如何解决
    js获取近十二个月
    关于tomcat中的三个端口的作用及其相关细节
    js判断对象是否为空对象的几种方法
    解决myeclipse validation验证javascript导致速度变慢的现象
    jQuery基础教程之is()方法和has() 方法
    2015年6月发布了ECMAScript6版本
    http系列--从输入 URL 到页面加载完成的过程
    一篇文看懂Hadoop
  • 原文地址:https://www.cnblogs.com/zhaoyong1/p/6677612.html
Copyright © 2011-2022 走看看