node.js实现登录注册页面


Posted in Javascript onApril 08, 2017

本文实例为大家分享了node.js登录注册页面展示的具体代码,供大家参考,具体内容如下

首先需要新建四个文件

一个服务器js

一个保存数据的txt

一个登陆、一个注册页面html

1、注册页面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>regist</title>
</head>
<body>
  <div>
    <label for="user">用户名</label><input type="text" id="user">
  </div>
  <div>
    <label for="password">密   码</label><input type="password" id="password">
  </div>
  <div>
    <button id="register">注册</button>
  </div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
  $(function () {
    $("#register").click(function () {
      $.ajax({
        url:"http://localhost:3000/register",
        type:"POST",
        data:{
          username:$("#user").val(),
          password:$("#password").val()
        },
        success:function (res) {
          alert(res);
        },
        error:function (err) {
          console.log(err);
        }
      })
    })
  });
</script>
</html>

2、登录界面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>login</title>
</head>
<body>
  <div>
    <label for="user">用户名</label><input type="text" id="user">
  </div>
  <div>
    <label for="password">密   码</label><input type="password" id="password">
  </div>
  <div>
    <button id="login">登录</button>
    <button id="register"><a href="regist.html">注册</a></button>
  </div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
  $(function () {
    $("#login").click(function () {
      if ($("#user").val().length == 0){
        return alert("请输入内容!");
      }
      if ($("#password").val().length == 0){
        return alert("请输入密码!");
      }

      $.ajax({
        url:"http://localhost:3000/login",
        type:"POST",
        data:{
          username:$("#user").val(),
          password:$("#password").val()
        },
        success:function (res) {
          alert("登录成功!")
        },
        error:function (err) {
          console.log(err);
        }
      })

    })
  });
</script>
</html>

3、搭建服务器

var http = require("http");
var url = require("url");
var qs = require("querystring");
var fs = require("fs");

http.createServer(function (req , res) {
//设置请求头
  res.setHeader("Access-Control-Allow-Origin","*");
  if(req.method == "POST"){
    //接收发来的用户名和密码
    var result = "";
//获取前端代码发来的路由地址
    var pathName = url.parse(req.url).pathname;
    req.addListener("data",function (chunk) {
      result += chunk;
    });

    req.on("end" , function () {
      var user = qs.parse(result);
      //判断用户是否存在
      if(user.username){
        fs.readFile("db.txt" , "utf-8" , function (err,data) {
          if (!err){
            console.log("读取文件成功");
            if (!data){
              if(pathName == "/login"){
                res.end("该用户不存在");
                return;
              }
//根据前端发来的路由地址判断是登录还是注册页面,如果是注册页面
              if(pathName == "/register"){
//创建一个数组一个对象来保存帐号和密码
                var arr = [];
                var obj = {};
//把用户的帐号密码保存
                obj.username = user.username;
                obj.password = user.password;
                arr.push(obj);
//同步写入db.txt文件,必须是同步进行
                fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
                res.end("注册成功!");
                return;
              }
            }else {
              console.log("文件中有数据");
//把数据转成JSON对象,以便我们使用
              var arr = JSON.parse(data);
//遍历整个保存数据的数组 判断登录注册
              for(var i = 0;i < arr.length;i++){
                var obj = arr[i];
                if(obj.username == user.username){
                  if(pathName == "/login"){
                    if (obj.password == user.password){
                      res.end("登录成功!");
                      return;
                    }else {
                      res.end("密码错误!");
                      return;
                    }
                  }
                  if(pathName == "/register"){
                    res.end("该用户已存在!");
                    return;
                  }
                }
              }
              if(pathName == "/login"){
                res.end("用户名不存在!");
                return;
              }
              if(pathName == "/register"){
//创建新对象写入数据
                var obj = {};
                obj.username = user.username;
                obj.password = user.password;
                arr.push(obj);
                fs.writeFileSync("db.txt" , JSON.stringify(arr) , "utf-8");
                res.end("注册成功!");
                return;
              }
            }
          }else {
            console.log("读取文件失败");
          }
        })
      }
    });
  }else {
    res.end("get请求");
  }
}).listen(3000 , function (err) {
  if (!err){
    console.log("服务器启动成功,正在监听port3000...");
  }
});

4、在db.txt文件中可以查看注册信息

node.js实现登录注册页面

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
JavaScript基础语法让人疑惑的地方小结
May 23 Javascript
JavaScript中匿名函数的用法及优缺点详解
Jun 01 Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
Jan 11 Javascript
Javascript自定义事件详解
Jan 13 Javascript
20行JS代码实现网页刮刮乐效果
Jun 23 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
Oct 31 Javascript
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
vue实现的上拉加载更多数据/分页功能示例
May 25 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
Oct 17 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 #Javascript
js仿微信公众平台打标签功能
Apr 08 #Javascript
详解node.js搭建代理服务器请求数据
Apr 08 #Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 #Javascript
JavaScript中的遍历详解(多种遍历)
Apr 07 #Javascript
分享十三个最佳JavaScript数据网格库
Apr 07 #Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 #Javascript
You might like
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
vue实例的选项总结
2020/06/09 Javascript
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
用Python实现读写锁的示例代码
2018/11/05 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python自动生成model文件过程详解
2019/11/02 Python
Python的历史与优缺点整理
2020/05/26 Python
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
荷兰手表网站:Watch2Day
2018/07/02 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
母亲节演讲稿范文
2014/01/02 职场文书
草船借箭教学反思
2014/02/03 职场文书
代理协议书范本
2014/04/22 职场文书
社区工作者演讲稿
2014/05/23 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
如何书写邀请函?
2019/06/24 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB