nodejs学习笔记三(用户注册登录)

Posted Jason齐齐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

 

以上是关于nodejs学习笔记三(用户注册登录)的主要内容,如果未能解决你的问题,请参考以下文章

第四周学习笔记

NodeJS学习笔记——搭建开发框架Express,实现Web网站登录验证

深入浅出nodejs学习笔记——nodejs简介

NodeJS+Express+MongoDB 简单个人博客系统Study笔记

《nodejs+gulp+webpack基础实战篇》课程笔记-- 实战演练,构建用户登录

Java学习笔记8.2.1 JDBC实战 - 基于JDBC的GUI用户登录