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);

 

posted @ 2017-06-22 23:24  Jason齐齐  阅读(802)  评论(0编辑  收藏  举报