• node实例,简单用户登录和注册


    //nodejs代码
    const http = require('http'); const fs = require('fs'); const querystring = require('querystring'); const urlLib = require('url'); var users = {}; var server = http.createServer(function(req, res){ // 解析数据 if (req.url == "/favicon.ico") { return; } var str=''; req.on('data', function(data){ str+=data; }); req.on('end', function(){ 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, "msg": "此用户已存在"}'); //2、插入user }else{ users[GET.user] = GET.pass; res.write('{"ok": true, "msg": "注册成功"}') } break; //登录 case 'login': //1、检查登录用户名是否存在 if (users[GET.user] == null) { res.write('{"ok": false, "msg": "此用户不存在"}'); //2、检查密码是否正确 }else if (users[GET.user] != GET.pass) { res.write('{"ok": false, "msg": "用户名或密码有误"}'); }else{ res.write('{"ok": true, "msg": "登录成功"}'); } break; default: res.write('{"ok" : false, "msg" : "未知的act"}'); } res.end(); console.log(users); console.log(GET); console.log(GET.user); console.log(GET.pass); }else{ // 读取文件 var file_name = './www'+req.url; fs.readFile(file_name, function(err, data){ if (err) { res.write(404); }else{ res.write(data); } res.end(); }) } }); }); server.listen(8082);

    //HTML + JS代码
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <script type="text/javascript" src="ajax.js"></script>
            <script type="text/javascript">
            window.onload = function(){
                var oTextUser = document.getElementById("user");
                var oTextPass = document.getElementById("pass");
                var loginBtn = document.getElementById("login_btn");
                var regBtn = document.getElementById("reg_btn");
                loginBtn.onclick = function(){
                    ajax({
                        url: '/user',
                        data: {act: 'login', user: oTextUser.value, pass: oTextPass.value},
                        type: 'get',
                        success:function(str){
                            var json = eval('('+str+')');
                            if (json.ok) {
                                alert("登录成功");
                            }else{
                                alert("登录失败"+ json.msg);
                            }
                        },
                        error:function(){
                            alert("通信错误");
                        }
                    })
                };
                regBtn.onclick = function(){
                    ajax({
                        url:'/user',
                        data: {act: 'reg', user: oTextUser.value, pass: oTextPass.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="text" id="pass" /><br />
            <input type="button" value="登录" id="login_btn" />
            <input type="button" value="注册" id="reg_btn" />
        </body>
    </html>
    

      

    /** Ajax 代码
     *  Author:strive
     *  Date: 2016/1/13
     */
    
    function json2url(json){
        var arr=[];
        for(var name in json){
            arr.push(name+'='+json[name]);
        }
        return arr.join('&');
    }
    
    function ajax(json){
        json=json || {};
        if(!json.url)return;
        json.data=json.data || {};
        json.type=json.type || 'get';
    
        var timer=null;
    
        if(window.XMLHttpRequest){
            var oAjax=new XMLHttpRequest();
        }else{
            var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
        }
    
        switch(json.type){
            case 'get':
                oAjax.open('GET',json.url+'?'+json2url(json.data),true);
                oAjax.send();
                break;
            case 'post':
                oAjax.open('POST',json.url,true);
                oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                oAjax.send(json2url(json.data));
                break;
        }
    
        oAjax.onreadystatechange=function(){
            if(oAjax.readyState==4){
                clearTimeout(timer);
                if(oAjax.status>=200 && oAjax.status<300 || oAjax.status==304){
                    json.success && json.success(oAjax.responseText);
                }else{
                    json.error && json.error(oAjax.status);
                }
            }
        };
    }
    

      

      

  • 相关阅读:
    OCP-1Z0-051-V9.02-118题
    VC++ 获取临时目录
    VC++ UUID/GUID
    MFC无边框的窗体实现用鼠标拖动窗体边缘实现窗体大小变化
    Win32 SDK程序中拖动Thin边框窗口来改变窗口大小
    HTML5 App实战(7):连连看
    MFC对话框Border类型(None、Thin、Resizing、Dialog Frame)对应的部分属性
    项目报错七
    Linux下如何查看高CPU占用率线程
    项目报错六
  • 原文地址:https://www.cnblogs.com/patriot/p/7249798.html
Copyright © 2020-2023  润新知