Node学习笔记之第六课实现一个简单的登录注册接口

笔记

首先定义接口 

接口名称: /user 

请求参数:act=reg&username=aaa&pass=123456 

     act的值区分是注册还是登录

     username是用户名

     pass是密码

返回值 {'ok':false,'msg':'原因'}

 

 

需求是这样的

先说注册

1.输入用户名跟密码提交注册时后台判断该用户名是否已经存在,如果已经存在就提示用户该用户名已经存在,否则注册成功

登录

1.输入用户名跟密码提交登录时判断该用户名是否已经注册,没有注册提示用户先去注册,如果已经注册判断输入的密码是否与注册时的密码一致,不一致时提醒用户名账号或者密码输入错误,一致时直接是登录成功

 

 

 

 

html代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>POST发送表单</title>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
       
</head>

<body>

    <p>注册</p>
    <form name='regiForm'>
        用户名:
        <input type="text" name="name" id="">
        密码:
        <input type="password" name="pass" id="">
    </form>

    <button class="registered">注册</button>

    <p>登录</p>
    <form name='loginForm'>
        用户名:
        <input type="text" name="name" id="">
        密码:
        <input type="password" name="pass" id="">

    </form>
    <button class="login">登录</button>

</body>


<script>
    $(function () {
        $('.registered').click(function () {
          
            $.ajax({
                // async: false,
                type: 'GET',
                url: 'http://localhost:8888/user',
                data: {
                    act: 'reg',
                    name:regiForm.name.value,
                    pass:regiForm.pass.value
                },
                success: function (res) {
                    let result=JSON.parse(res)
                   if(result.ok){
                       console.log('注册成功')
                   }else{
                    console.log(result.msg)
                   }

                },
                error: function () {
                    console.log('网络错误')
                }

            });
        })

        $('.login').click(function () {

            $.ajax({
                // async: false,
                type: 'GET',
                url: 'http://localhost:8888/user',
                data: {
                    act: 'login',
                    name:loginForm.name.value,
                    pass:loginForm.pass.value
                },
                success: function (res) {
                    let result=JSON.parse(res)
                if(result.ok){
                       console.log('登录成功')
                   }else{
                    console.log(result.msg)
                   }

                },
                error: function () {
                    console.log('网络错误')
                }

            });
        })
    })
</script>

</html>

 

server.js代码

const http = require("http");
const fs = require("fs");
const querystring = require("querystring");
const URL = require("url");

var users = {};

http
  .createServer(function(req, res) {
    var postStr = "";

    req.on("data", function(data) {
      postStr += data;
    });

    req.on("end", function() {
      var obj = URL.parse(req.url, true);
      console.log(obj)
      const url = obj.pathname;
      const get = obj.query;
      const post = querystring.parse(postStr);

     console.log(url)
      // 判断是否是接口
      if (url == "/user") {
        //注册
        if (get.act =="reg") {
          if (users[get.name]) {
            res.write('{"ok":false,"msg":"该用户已经存在,可以直接登录"}');
          } else {
            users[get.name] = get.pass;
            res.write('{"ok":true,"msg":"注册成功"}');
          }
          //登录
        } else if (get.act == "login") {
          if (!users[get.name]) {
            res.write('{"ok":false,"msg":"该用户还没注册"}');
          } else if (users[get.name] != get.pass) {
            res.write('{"ok":false,"msg":"密码错误"}');
          } else {
            res.write('{"ok":true,"msg":"登录成功"}');
          }
        } else {
            res.write('{"ok":false,"msg":"没有该类型的文件"}');
        }

        res.end();
      } else {
        var file_name = './' + req.url;
        fs.readFile(file_name, function (err, data) {
            if (err) {
                res.write('404');
            } else {
                res.write(data.toString());
                
            }
            res.end();
        })
      }
    });

    // res.end();
  })
  .listen(8888);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值