• node.js(四)小结


    用之前的内容写一个简单的注册登录

    const http = require('http')
    const urlLib = require('url')
    const fs = require('fs')
    const querystring = require('querystring')
    
    var users = {} // {"name":"password"} 模拟数据库存储数据
    
    var server = http.createServer(function (req, res) {
        // 解析数据
        var str = ''
        req.on('data', function (data) {
            str += str
        })
        req.on('end', function () {
            var obj = urlLib.parse(str, true);
            const url = obj.pathname
            const GET = obj.query
            const POST = querystring.parse(str)
    
            if (url == '/user') {
                //console.log(GET)
                switch (GET.act) {
                    case 'reg':
                        //1、用戶是否存在
                        if (users[GET.user]) {
                            res.write('{"ok":false,"msg":"用戶已存在"}')
                        } else {
                            //2、插入
                            users[GET.user] = GET.pass
                            res.write('{"ok":true,"msg":"註冊成功"}')
                        }
                        break;
                    case 'login':
                        //1、用戶是否存在
                        if (users[GET.user] == null) {
                            res.write('{"ok":false,"msg":"用戶不存在"}')
                            res.end();
                        } else if (users[GET.user] != GET.pass) {
                            res.write('{"ok":false,"msg":"用戶名或密碼有誤"}')
                            res.end();
                        } else {
                            res.write("{'ok':true,'msg':'登錄成功'}");
                        }
                        //2、檢查用戶密碼
                        break
                    default:
                        res.write("{'ok':false,'msg':'未知的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()
                })
            }
        })
    
    });
    
    server.listen(8080)
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    用戶名:<input type="text" name="user" id="user"><br>
    密碼:<input type="password" name="pass" id="pass"><br>
    <input type="button" value="註冊" id="reg_btn">
    <input type="button" value="登錄" id="login_btn">
    
    <script>
        window.onload = function () {
            var oTxtUser = document.getElementById('user');
            var oTxtPass = document.getElementById('pass');
            var oBtnReg = document.getElementById('reg_btn');
            var oBtnLongin = document.getElementById('login_btn');
    
            function ajaxFun(act) {
                var xhr = new XMLHttpRequest();
                xhr.open('GET', '/user?user=' + oTxtUser.value + '&pass=' + oTxtPass.value + '&act=' + act, true);
                xhr.send();
                xhr.onreadystatechange = function () {
                    // readyState == 4说明请求已完成
                    if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) {
                        // 从服务器获得数据
                        console.log(xhr.responseText)
                    }
                };
            }
            oBtnReg.onclick = function () {
                ajaxFun("reg")
            }
            oBtnLongin.onclick = function () {
                ajaxFun("login")
            }
        }
    </script>
    </body>
    </html>
    

      

    运行代码 node xxx.js

    在浏览器输入http://localhost:8080/user.html

  • 相关阅读:
    三、改变struts.xml默认路径后web.xml如何配置
    学习日记_SSH框架web.xml配置文件篇
    StrutsPrepareAndExecuteFilter的作用
    web.xml 中的listener、 filter、servlet 加载顺序及其详解
    HTTP协议是什么?(及get和post请求的区别)
    REST和SOAP Web Service的比较
    struts.xml中的intercepter
    Struts2 XML配置详解
    web.xml配置详解 (及<context-param>配置作用 )
    Java常量池详解
  • 原文地址:https://www.cnblogs.com/YAN-HUA/p/10893438.html
Copyright © 2020-2023  润新知