zoukankan      html  css  js  c++  java
  • nodejs学习笔记三(用户注册、登录)

    1.定接口
         /user 接口
                  输入    act=reg&user=aaa&pass=123456
                  输出     {"ok":false, "msg":"原因"}
         
                  输入     act=login&user=aaa&pass=123456
                  输出     {"ok": true, "msg":"原因"}
     
    2、server.js
         
    解析数据
    读取文件
     
    访问的情况 --- 区分接口和文件
         1.对文件的访问
     
         2.对接口的访问
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>node登录注册</title>
        <script src="jquery.js"></script>
    </head>
    <body>
        <div>
            账号:<input type="text" name="name" id="user">
        </div>
        <div>
            密码:<input type="password" name="pass" id="password">
        </div>
        <input type="button" value="注册" id="reg">
        <input type="button" value="登录" id="login">
    </body>
    <script>
        $('#reg').click(function() {
            console.log($('#user').val(), $('#password').val())
            $.ajax({
                url: '/user',
                data: {act: 'reg', user: $('#user').val(), pass: $('#password').val()},
                type: 'get',
                success(res) {
                    let data = eval('('+ res +')');
                    if(data.ok) {
                        alert('注册成功');
                    }else {
                        alert('注册成功' + data.msg);
                    }
                },
                error() {
                    alert('通信错误');
                }
            })
        });
    
        $('#login').click(function() {
            $.ajax({
                url: 'user',
                data: {act: 'login', user: $('#user').val(), pass: $('#password').val()},
                type: 'get',
                success(res) {
                    let data = eval('('+ res +')');
                    if(data.ok) {
                        alert('登录成功');
                    }else {
                        alert('登录失败' + data.msg);
                    }
                },
                error() {
                    alert('通信错误');
                }
            });
        });
    </script>
    </html>
    const http = require('http');
    const fs = require('fs');
    const querystring = require('querystring');
    const urlLib = require('url');
    
    // {"jason": "123456", "liming": "000000", "xiaokui": "654321"}
    let users = {};
    
    let server = http.createServer( (req, res) => {
        // 解析数据
        let str = '';
        req.on('data', (data) => {
            str += data;
        });
        req.on('end', () => {
            let urlObj = urlLib.parse(req.url, true);
    
            const url = urlObj.pathname;
            const GET = urlObj.query;
            const POST = querystring.parse(str);
    
            // 区分-接口和文件
            if(url == '/user') {     // 接口 --处理接口
                switch(GET.act) {
                    // 注册
                    case 'reg':
                        // 检查是否已经注册
                        if(users[GET.user]) {
                            res.write('{"ok": false, "msg": "此用户名已经存在"}');
                        }else {
                            // 插入到 users
                            users[GET.user] = GET.pass;
                            res.write('{"ok": true, "msg": "注册成功"}');
                        }
                        break;
                    // 登录
                    case 'login':
                        // 检查用户是否存在
                        if(users[GET.user] == null) {
                            res.write('{"ok": false, "msg": "此用户不存在"}');
                        // 检查密码是否正确
                        }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(GET, users);
            }else {     // 文件 -- 读取文件
                let file_name = './www' + url;
                fs.readFile(file_name, (err, data) => {
                    if(err) {
                        res.write('404');
                    }else {
                        res.write(data);
                    }
                    res.end();
                });
            }
        });
    });
    
    server.listen(8999);
  • 相关阅读:
    entrySet()
    DBCC DBREINDEX重建索引提高SQL Server性能
    ASP中调用存储过程、语法、写法-sql server数据
    这个月一直很忙,没时间写点心得,就放点周末去玩的照片吧
    JQuery 中,使文本框获得焦点的方法
    数据库系统不能自动删除备份的原因之一
    C# 中的常用正则表达式总结
    删除在建表时SQL SERVER2000指定PRIMARY KEY引起的 聚合索引
    IIS7入门之旅:(1)appcmd命令的使用
    IIS7入门之旅:(2)如何实现和加载自定义的Basic Authentication模块
  • 原文地址:https://www.cnblogs.com/jasonwang2y60/p/7067787.html
Copyright © 2011-2022 走看看